-
1 # RichardCcy
-
2 # 繁星落石
演算法是一個方法,不限於程式設計,解決一個問題的方法就算是演算法,可能是一個數學問題,也可能是一個物理問題。
程式是一段計算機可以理解並執行的程式碼,這段程式碼擁有既定邏輯,並且可以按照設計流程執行特定任務。
所以兩者完全是不同的東西,演算法可以被包含在程式邏輯裡面,而且因為程式一定是面向某個或者某些問題,所以程式裡面幾乎都可以看到演算法的影子;但是不是所有的演算法都可以程式化。
-
3 # 南極影解
聯絡
演算法是解決問題的步驟;程式是演算法的程式碼實現演算法要依靠程式來完成功能;程式需要演算法作為靈魂
程式是結果,演算法是手段(為編寫出好程式所使用的運算方法)。同樣編寫一個功能的程式,使用不同的演算法可以讓程式的體積、效率差很多。所以演算法是程式設計的精華所在。
演算法是程式設計的核心,演算法的好壞很大程度上決定了一個程式的效率。一個好的演算法可以降低程式執行的時間複雜度和空間複雜度。先選出一個好的演算法,再配合以一種適宜的資料結構,這樣程式的效率會大大提高。
演算法和程式都是指令的有限序列 ,但是:程式是演算法,而演算法不一定是 程式。
區別(1) 在語言描述上,程式必須是用規定的程式設計語言來寫,而演算法很隨意;
(2) 在執行時間上,演算法所描述的步驟一定是有限的,而程式可以無限地執行下去。演算法是對特定問題求解步驟的描述,它是指令的有限序列。
擴充套件資料--演算法的特徵一個演算法應該具有以下五個重要的特徵:
1、有窮性(Finiteness),演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
2、確切性(Definiteness),演算法的每一步驟必須有確切的定義;
3、輸入項(Input),一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4、輸出項(Output),一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性(Effectiveness),演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
-
4 # 日衝資訊 黃
演算法和程式都是計算機系統中的兩個概念。要說清楚二者的關係,需要先理解一下計算機的運算原理(圖靈機原理)。
計算機運算有以下三個特徵:
計算步驟為有限次有輸入項和輸出項每個步驟都只做四則運算、邏輯運算、關係運算和資料操作人們已經證明計算機運算可以解決所有不需要無限次計算的問題。用計算機運算解決某一問題的方法就是演算法了。比如,如何對一個數列進行排序,如何遍歷一個樹形的所有分支,如何找到一個多元方程組的最優解。
為了讓計算機執行設計好的演算法,需要根據算法制定計算機指令序列,這個指令序列就是程式。計算機指令是和前面說的運算和操作是一一對應的。它是一組數字編碼,一般人很難讀懂。於是,人們又制定了接近自然語言的程式語言,方便人們編寫程式。
-
5 # 環球科技坊
1.演算法和程式兩者的定義不同。
演算法是解決特定問題的一種思路步驟,而程式是解決問題具體的一系列的語句和指令。
2.演算法和程式的書寫規範不同。
演算法比較靈活、書寫很隨意,沒有語言界限。程式就必須用規定的設計語言來進行書寫。
-
6 # 故事很長很長很長A
演算法和程式的區別。
首先我們先談一下程式和演算法的關係。
程式=資料結構+演算法。
一個好的程式離不開一個好的演算法,同樣也離不開合適的資料結構。
演算法是解決問題的方法,資料結構是解決問題的數學模型,程式是他們的融合應用。
回覆列表
演算法是解決問題的步驟;程式是演算法的程式碼。實現演算法要依靠程式來完成功能;程式需要演算法作為靈魂。
區別主要在於:
1 在語言描述上,程式必須是用規定的程式設計語言來寫,而演算法很隨意;
2 在執行時間上,演算法所描述的步驟一定是有限的,而程式可以無限地執行下去。
具體區別和聯絡:
1)演算法在描述上一般使用半形式化的語言,而程式是用形式化的計算機語言描述的。2) 程式是計算機指令的有序集合。3)程式並不都滿足演算法所要求的特徵,例如作業系統,是一個在無限迴圈中執行的程式,因而不是一個演算法。4)一個演算法可以用不同的程式語言編寫出不同的程式。5)演算法是解決問題的步驟;程式是演算法的程式碼實現。6)演算法要依靠程式來完成功能;程式需要演算法作為靈魂。7)程式=演算法+資料結構。