當前位置:首頁 » 操作系統 » 演算法和程序

演算法和程序

發布時間: 2022-12-07 12:01:21

1. 演算法和程序的區別

1 演算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟.或者看成按照要求設計好的有限的確切的計算序列,並且這樣的步驟和序列可以解決一類問題.
2 程序是計算機指令的有序集合.(指令是能被計算機識別並執行的二進制代碼)
3 演算法的范圍比程序要大.

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

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

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

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

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

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

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

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

演算法和程序的關系是:

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

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

3. 演算法與程序的關系

  1. 程序包含演算法,演算法就是程序的靈魂,一個需要實現特定功能的程序,實現它的演算法可以有很多種,所以演算法的優劣決定著程序的好壞。程序員很熟練的掌握了程序設計語言的語法,進行程序設計,軟體開發的時候就是設計好的演算法,加上軟體工程的 理論才能做出較好的系統。

  2. 演算法是指解決問題的一種方法或一個過程。

演算法是若干指令的有窮序列,滿足性質:

(1)輸入:由外部提供的量作為演算法的輸入。

(2)輸出:演算法產生至少一個量作為輸出。

(3)確定性:組成演算法的每條指令是清晰,無歧義的。

(4)有限性:演算法中每條指令的執行次數是有限的,執行每條指令的時間也是有限的。

3.程序是演算法用某種程序設計語言的具體實現。

程序可以不滿足演算法的性質。

例如操作系統,是一個在無限循環中執行的程序,因而不是一個演算法。

操作系統的各種任務可看成是單獨的問題,每一個問題由操作系統中的一個子程序通過特定的演算法來實現。該子程序得到輸出結果後便終止。

4. 演算法與程序的區別與聯系

演算法和程序的區別是:

(1) 兩者定義不同。演算法是對特定問題求解步驟的描述,它是有限序列指令。而程序是實現預期目的而進行操作的一系列語句和指令。

說通俗一些演算法是解決一個問題的思路,程序,是解決這些問題所具體好寫的代碼。演算法沒有語言界限。他只是一個思路。為實現相同的一個演算法,用不同語言編寫的程序會不一樣。

(2)兩者的書寫規定不同。程序必須用規定的程序設計語言來寫,而演算法很隨意。演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。演算法常常含有重復的步驟和一些邏輯判斷。

簡單演算法舉例 例:求 1*2*3*4*5

步驟 1 :先求 1*2 ,得到結果 2 。

步驟 2 :將步驟 1 得到的乘積 2 再乘以 3 ,得到結果 6 。

步驟 3 :將步驟 2 得到的乘積 6 再乘以 4 ,得到結果 24 。

步驟 4 :將步驟 3 得到的乘積 24 再乘以 5 ,得到最後結果 120 。

演算法與程序的聯系 :

演算法和程序都是指令的有限序列 ,但是程序是演算法,而演算法不一定是 程序。程序 = 數據結構 + 演算法。演算法的主要目的在於為人們提供閱讀了解所執行的工作流程與步驟。數據結構與演算法要通過程序的實現,才能由計算機系統來執行。可以這樣理解,數據結構和演算法形成了可執行的程序。

(4)演算法和程序擴展閱讀

演算法的要素:

一、數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:

1、算術運算:加減乘除等運算。

2、邏輯運算:或、且、非等運算。

3、關系運算:大於、小於、等於、不等於等運算。

4、數據傳輸:輸入、輸出、賦值等運算。

二、演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。

5. 演算法與程序有什麼異同

用一句說話答你的話, 那就是 : 演算法只是程序中可以處理的其中一件事.
演算法, 基本上就是以數學的形式去對一個 "模式" 的模術, 例如最簡單的畢氏定理 a^2 + b^2 = c^2 . 當然還有更多更復雜的演算法, 例如 OpenCV 對面容辨識的各種演算法, 從距離, 比例, 顏色深淺來定位那裡是雙眼, 嘴巴, 人面... 但總言之, 演算法離不開 f(x) = ..... 這個框架. 你可以從演算法中求 x 等於甚麼, 又或者從已知的 x 去找出演算法中其他的未知數.. 演算法, 就是數學

程序, 基本有: 輸入 -> 處理 -> 輸出 -> 存取檔案這幾個部份, 當中便有豪多樣的可能性, 光是輸入, 就已可分由用者輸入, 從檔案輸入, 甚至... 從演算法中輸入!! 又來到處理, 演算法所不能做到的的一件事, 就是程序可以做出邏輯的分支, if ... elseif... else... 整個流程可以隨意跳躍...

最後一句就是, 演算法是死的, 程序是活的.

6. 演算法與程序有何區別和聯系

聯系:程序是計算機指令的有序集合,是演算法用某種程序設計語言的表述,是演算法在計算機上的具體實現。

區別:

一、形式不同

1、演算法:演算法在描述上一般使用半形式化的語言。

2、程序:程序是用形式化的計算機語言描述的。

二、性質不同

1、演算法:演算法是解決問題的步驟。

2、程序:程序是演算法的代碼實現。

三、特點不同

1、演算法:演算法要依靠程序來完成功能。

2、程序:程序需要演算法作為靈魂。

7. 演算法與程序有什麼區別

演算法是為一個問題或一類問題給出的解決方法與具體步驟,是對問題求解過程的一種准確而完整的邏輯描述。程序則是為了用計算機解題或控制某一過程而編排的一系列指令的集合。程序不等於演算法。但是,通過程序設計可以在計算機上實現演算法。

你可能解答過一個有趣的問題——“人、狼、羊過河”問題。有個人帶著三隻狼、三隻羊,要過河去。有一條小船。船上除了運載一個人外,至多再載狼或羊中的任意兩只。但難點是:當人不在場時,如果狼的數量大於等於羊的數量,那麼羊會被狼吃掉。為了安全過河,你有什麼辦法呢?

解決它的演算法有多個,其中一個解決方案是這樣的:

開始,運一隻狼過河,空船回來;

接著,運一隻狼和一隻羊再過河,到對岸後,再運兩只狼回來;

然後,運兩只羊過河,空船回來;

最後,分兩次將狼全部運過河;

由此,過河問題就得以解決了。

可見,演算法是為一個問題或一類問題給出的解決方法與具體步驟,是對問題求解過程的一種准確而完整的邏輯描述。它由有限步驟的操作序列組成,代表著用系統的方法描述解決問題的策略機制。

演算法是一組嚴謹定義運算順序的規則,每一個規則都是有效的、明確的,此順序必須在有限的次數下終止。在上面的過河問題中,如果第一步中改為:“運一隻狼過河,再運這只狼回來”,那麼,說明人沒找到好辦法,在反復進行無用操作。此類演算法,是失敗的,永遠也實現不了既定目標。

演算法描述,一般可以使用漢、英等自然語言,比較通俗易懂。也可以使用流程圖、偽代碼表格等其他工具。

在古代,演算法通常用於數值計算。中國古代的籌算口訣、珠算口訣及其執行規則就是演算法的雛形。它所解決的是數值計算問題。現代演算法,已超出數值計算范圍。

程序則是為了用計算機解題或控制某一過程而編排的一系列指令的集合。這些指令,可以是計算機的機器指令,也可以是匯編語言和高級程序設計語言。

程序不等於演算法。但是,通過程序設計可以在計算機上實現演算法。在實際應用中,也許只需一條(組)程序設計語句,就可以完成演算法的基本要素處理,包括數據對象的運算和操作,以及順序、選擇、循環結構的控制。通過程序模塊設計,可以實現演算法中的遞推、遞歸、迭代等一系列基本演算法,也包括形式演繹、數據結構、數論圖論、加密解密、科學決策等復雜演算法。

因此,運用計算機解決問題的過程,通常可以分成三個階段:分析問題、設計演算法和編製程序實現演算法。由於計算機運算速度快,存儲數據量大,大大提高了演算法實現效率。

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:515
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:19
linux485 發布:2025-07-05 14:38:28 瀏覽:299
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:750
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:425
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:684
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:233
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:678
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:277
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:828