導航:首頁 > 源碼編譯 > 演算法是寫什麼的

演算法是寫什麼的

發布時間:2023-09-23 03:26:10

① 在計算機中,演算法是指什麼

演算法(Algorithm)是對問題求解方法的精確描述
,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用
空間復雜度

時間復雜度
來衡量。
演算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟。或者看成按照要求設計好的有限的確切的計算序列,並且這樣的步驟和序列可以解決一類問題。
一個演算法應該具有以下五個重要的特徵:
1、
有窮性

一個演算法必須保證執行有限步之後結束;
2、
明確性

演算法的每一步驟必須意義明確;
3、
輸入
:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件;
4、
輸出
:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5、
可執行性

所採用的演算法必須能夠在計算機上執行。
計算機科學家尼克勞斯-沃思曾著過一本著名的書《數據結構十演算法=
程序》,可見演算法在計算機科學界與計算機應用界的地位。

② 演算法是什麼

在數學和計算機科學中,演算法是如何解決一類問題的明確規范。

演算法可以執行計算、數據處理、自動推理和其他任務。

作為一種有效的方法,演算法可以在有限的空間和時間內用定義明確的形式語言[1] 來表示,以計算函數[2] [3] 。從初始狀態和初始輸入(可能為空)開始,[4] 指令描述了一種計算,當執行該計算時,該計算通過有限的[5] 數量的明確定義的連續狀態,最終產生的「輸出」[6] 並終止於最終結束狀態。從一種狀態到下一種狀態的轉變不一定是 明確的;一些被稱為隨機演算法的演算法包含隨機輸入。[7]

③ 演算法是什麼急!!!!

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
解析:

演算法 Algorithm

演算法是在有限步驟內求解某一問題所使用的一組定義明確的規則。通俗點說,就是計算機解題的過程。在這個過程中,無論是形成解題思路還是編寫程序,都是在實施某種演算法。前者是推理實現的演算法,後者是操作實現的演算法。

一個演算法應該具有以下五個重要的特徵:

1、有窮性: 一個演算法必須保證執行有限步之後結束;

2、確切性: 演算法的每一步驟必須有確切的定義;

3、輸入:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件;

4、輸出:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;

5、可行性: 演算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算後即可完成。

演算法的設計要求

1)正確性(Correctness)

有4個層次:

A.程序不含語法錯誤;

B.程序對幾組輸入數據能夠得出滿足規格要求的結果;

C.程序對精心選擇的、典型的、苛刻的、帶有刁難性的幾組輸入數據能夠得出滿足規格要求的結果;

D.程序對一切合法的輸入數據都能產生滿足規格要求的結果。

2)可讀性(Readability)

演算法的第一目的是為了閱讀和交流;

可讀性有助於對演算法的理解;

可讀性有助於對演算法的調試和修改。

3)高效率與低存儲量

處理速度快;存儲容量小

時間和空間是矛盾的、實際問題的求解往往是求得時間和空間的統一、折中。

演算法的描述 演算法的描述方式(常用的)

演算法描述 自然語言

流程圖 特定的表示演算法的圖形符號

偽語言 包括程序設計語言的三大基本結構及自然語言的一種語言

類語言 類似高級語言的語言,例如,類PASCAL、類C語言。

演算法的評價 演算法評價的標准:時間復雜度和空間復雜度。

1)時間復雜度 指在計算機上運行該演算法所花費的時間。用「O(數量級)」來表示,稱為「階」。

常見的時間復雜度有: O(1)常數階;O(logn)對數階;O(n)線性階;O(n^2)平方階

2)空間復雜度 指演算法在計算機上運行所佔用的存儲空間。度量同時間復雜度。

時間復雜度舉例

(a) X:=X+1 ; O(1)

(b) FOR I:=1 TO n DO

X:= X+1; O(n)

(c) FOR I:= 1 TO n DO

FOR J:= 1 TO n DO

X:= X+1; O(n^2)

「演算法」一詞最早來自公元 9世紀 波斯數學家比阿勒·霍瓦里松的一本影響深遠的著作《代數對話錄》。20世紀的 英國 數學家 圖靈 提出了著名的圖靈論點,並抽象出了一台機器,這台機器被我們稱之為 圖靈機 。圖靈的思想對演算法的發展起到了重要的作用。

演算法是 計算機 處理信息的本質,因為 計算機程序 本質上是一個演算法,告訴計算機確切的步驟來執行一個指定的任務,如計算職工的薪水或列印學生的成績單。 一般地,當演算法在處理信息時,數據會從輸入設備讀取,寫入輸出設備,可能保存起來以供以後使用。

這是演算法的一個簡單的例子。

我們有一串隨機數列。我們的目的是找到這個數列中最大的數。如果將數列中的每一個數字看成是一顆豆子的大小 可以將下面的演算法形象地稱為「撿豆子」:

首先將第一顆豆子(數列中的第一個數字)放入口袋中。

從第二顆豆子開始檢查,直到最後一顆豆子。如果正在檢查的豆子比口袋中的還大,則將它撿起放入口袋中,同時丟掉原先的豆子。 最後口袋中的豆子就是所有的豆子中最大的一顆。

下面是一個形式演算法,用近似於 編程語言 的 偽代碼 表示

給定:一個數列「list",以及數列的長度"length(list)" largest = list[1] for counter = 2 to length(list): if list[counter] > largest: largest = list[counter] print largest

符號說明:

= 用於表示賦值。即:右邊的值被賦予給左邊的變數。

List[counter] 用於表示數列中的第 counter 項。例如:如果 counter 的值是5,那麼 List[counter] 表示數列中的第5項。

<= 用於表示「小於或等於」。

演算法的分類

(一)基本演算法 :

1.枚舉

2.搜索:

深度優先搜索

廣度優先搜索

啟發式搜索

遺傳演算法

(二)數據結構的演算法

(三)數論與代數演算法

(四)計算幾何的演算法:求凸包

(五)圖論 演算法:

1.哈夫曼編碼

2.樹的遍歷

3.最短路徑 演算法

4.最小生成樹 演算法

5.最小樹形圖

6.網路流 演算法

7.匹配演算法

(六)動態規劃

(七)其他:

1.數值分析

2.加密演算法

3.排序 演算法

4.檢索演算法

5.隨機化演算法

④ 什麼是演算法,它的五大特性是什麼,演算法和程序的關系是什麼

演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。

一個演算法應該具有以下五個重要的特徵:

有窮性(Finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;

確切性(Definiteness)
演算法的每一步驟必須有確切的定義;

輸入項(Input)
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;

輸出項(Output)
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;

可行性(Effectiveness)
演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。

演算法和程序的關系是:

演算法就是程序的靈魂,一個需要實現特定功能的程序,實現它的演算法可以有很多種,所以演算法的優劣決定著程序的好壞。

程序就是遵循一定規則的、為完成指定工作而編寫的代碼。有一個經典的等式闡明了什麼叫程序:程序 = 演算法 + 數據結構 + 程序設計方法 + 語言工具和環境 。

⑤ 請用自己的語言描述「演算法」究竟是一種什麼東西。

演算法 字面意思很簡單,就是計算方法。
無論c++ 還是 vb 甚至 js 都是一種 計算機編程語言。而語言本身只是工具,要用工具實現某種意義的行為或者目的,就需要將語言進行組織。而這種組織工作,則需要人的智慧和邏輯去實現對語言的組織。 這種智慧和邏輯的操作方法即為「演算法」。也可以理解為程序的靈魂。 將你的想法通過計算機語言來表達給計算機(實現過程)就是演算法。

演算法 中的算,包括簡單的數學計算,也包括更高級的邏輯計算和 抽象計算。 法,就是方法、原則、技巧、規則等。

對於一個事物,無論是對其描述、還是對其控制、還是使用研究 都是可以歸結為數學語言的,數學的東西從簡單的數字到復雜的數學模型 都可以進行廣義的「計算」。

演算法 簡言之,就是控制計算機的方法論,是程序運行的靈魂。

⑥ 什麼叫演算法演算法有哪幾種表示方法

演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。計算機科學家往往將「演算法」一詞的含義限定為此類「符號演算法」。「演算法」概念的初步定義:一個演算法是解決一個問題的進程。而並不需要每次都發明一個解決方案。

已知的演算法有很多,例如「分治法」、「枚舉測試法」、「貪心演算法」、「隨機演算法」等。

(6)演算法是寫什麼的擴展閱讀

演算法中的「分治法」

「分治法」是把一個復雜的問題拆分成兩個較為簡單的子問題,進而兩個子問題又可以分別拆分成另外兩個更簡單的子問題,以此類推。問題不斷被層層拆解。然後,子問題的解被逐層整合,構成了原問題的解。

高德納曾用過一個郵局分發信件的例子對「分治法」進行了解釋:信件根據不同城市區域被分進不同的袋子里;每個郵遞員負責投遞一個區域的信件,對應每棟樓,將自己負責的信件分裝進更小的袋子;每個大樓管理員再將小袋子里的信件分發給對應的公寓。

⑦ 計算機演算法指的是什麼

計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。

無論演算法有多麼復雜,都必須在有限步之後結束並終止運行;即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。

演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。

(7)演算法是寫什麼的擴展閱讀

特點

1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。

2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。

3、有零個或多個輸入。所謂輸入是指在執行演算法是需要從外界取得必要的信息。

4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。

5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。

閱讀全文

與演算法是寫什麼的相關的資料

熱點內容
pdf填色 瀏覽:145
ie運行java 瀏覽:637
單相空調壓縮機的構造 瀏覽:136
迅雷app的回收站在哪裡啊 瀏覽:595
加密技術的特點包括4點 瀏覽:561
pcre源碼包 瀏覽:67
崑山ug數控編程培訓 瀏覽:520
integer類源碼 瀏覽:819
java排序的時間復雜度 瀏覽:859
伺服器陣列卡壞了怎麼維修 瀏覽:537
shm演算法 瀏覽:520
可愛的程序員陸漓離開 瀏覽:608
如何把掃描文件做成pdf格式 瀏覽:625
php個性qq源碼 瀏覽:821
初學c語言顯示源未編譯 瀏覽:247
資產概況源碼 瀏覽:472
dos命令建文件夾命令 瀏覽:381
解壓的密碼htm被屏蔽 瀏覽:504
冬天太冷冰箱壓縮機不啟動怎麼辦 瀏覽:85
手機打開vcf需要什麼編譯器 瀏覽:912