程序演算法說明
㈠ 演算法與程序有何區別和聯系
聯系:程序是計算機指令的有序集合,是演算法用某種程序設計語言的表述,是演算法在計算機上的具體實現。
區別:
一、形式不同
1、演算法:演算法在描述上一般使用半形式化的語言。
2、程序:程序是用形式化的計算機語言描述的。
二、性質不同
1、演算法:演算法是解決問題的步驟。
2、程序:程序是演算法的代碼實現。
三、特點不同
1、演算法:演算法要依靠程序來完成功能。
2、程序:程序需要演算法作為靈魂。
㈡ 什麼是程序演算法
演算法是對特定問題求解過程的描述,是指令的有限序列,每條指令完成一個或多個操作。通俗地講,就是為解決某一特定問題而採取的具體有限的操作步驟。
演算法具有以下特性:
(1)有窮性:在有限的操作步驟內完成。有窮性是演算法的重要特性,任何一個問題的解決不論其採取什麼樣的演算法,其終歸是要把問題解決好。如果一種演算法的執行時間是無限的,或在期望的時間內沒有完成,那麼這種演算法就是無用和徒勞的,我們不能稱其為演算法。
(2)確定性:每個步驟確定,步驟的結果確定。演算法中的每一個步驟其目的應該是明確的,對問題的解決是有貢獻的。如果採取了一系列步驟而問題沒有得到徹底的解決,也就達不到目的,則該步驟是無意義的。
(3)可行性:每個步驟有效執行,得到確定的結果。每一個具體步驟在通過計算機實現時應能夠使計算機完成,如果這一步驟在計算機上無法實現,也就達不到預期的目的,那麼這一步驟是不完善的和不正確的,是不可行的。
(4)零個或多個輸入:從外界獲得信息。演算法的過程可以無數據輸入,也可以有多種類型的多個數據輸入,需根據具體的問題加以分析。
(5)一個或多個:演算法得到的結果就是演算法的輸出(不一定就是列印輸出)。演算法的目的是為解決一個具體問題,一旦問題得以解決,就說明採取的演算法是正確的,而結果的輸出正是驗證這一目的的最好方式。
㈢ 編程演算法是什麼
程序演算法是對特定問題求解過程的描述,是指令的有限序列,每條指令完成一個或多個操作。通俗地講,就是為解決某一特定問題而採取的具體有限的操作步驟。
在有限的操作步驟內完成。有窮性是演算法的重要特性,任何一個問題的解決不論其採取什麼樣的演算法,其終歸是要把問題解決好。如果一種演算法的執行時間是無限的,或在期望的時間內沒有完成,那麼這種演算法就是無用和徒勞的,我們不能稱其為演算法。
相關信息:
演算法的時間復雜度是指演算法需要消耗的時間資源。一般來說,計算機演算法是問題規模n 的函數f(n),演算法的時間復雜度也因此記做T(n)=Ο(f(n));因此,問題的規模n 越大,演算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間復雜度(Asymptotic Time Complexity)。
演算法的空間復雜度是指演算法需要消耗的空間資源。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。
㈣ 簡單演算法的概念,並舉例說明它在程序中的作用。
1 什麼叫演算法
演算法(Algorithm)是解題的步驟,可以把演算法定義成解一確定類問題的任意一種特殊的方法。在計算機科學中,演算法要用計算機演算法語言描述,演算法代表用計算機解一類問題的精確、有效的方法。演算法+數據結構=程序,求解一個給定的可計算或可解的問題,不同的人可以編寫出不同的程序,來解決同一個問題,這里存在兩個問題:一是與計算方法密切相關的演算法問題;二是程序設計的技術問題。演算法和程序之間存在密切的關系。
演算法是一組有窮的規則,它們規定了解決某一特定類型問題的一系列運算,是對解題方案的准確與完整的描述。制定一個演算法,一般要經過設計、確認、分析、編碼、測試、調試、計時等階段。
對演算法的學習包括五個方面的內容:① 設計演算法。演算法設計工作是不可能完全自動化的,應學習了解已經被實踐證明是有用的一些基本的演算法設計方法,這些基本的設計方法不僅適用於計算機科學,而且適用於電氣工程、運籌學等領域;② 表示演算法。描述演算法的方法有多種形式,例如自然語言和演算法語言,各自有適用的環境和特點;③確認演算法。演算法確認的目的是使人們確信這一演算法能夠正確無誤地工作,即該演算法具有可計算性。正確的演算法用計算機演算法語言描述,構成計算機程序,計算機程序在計算機上運行,得到演算法運算的結果;④ 分析演算法。演算法分析是對一個演算法需要多少計算時間和存儲空間作定量的分析。分析演算法可以預測這一演算法適合在什麼樣的環境中有效地運行,對解決同一問題的不同演算法的有效性作出比較;⑤ 驗證演算法。用計算機語言描述的演算法是否可計算、有效合理,須對程序進行測試,測試程序的工作由調試和作時空分布圖組成。
2、演算法的特性
演算法的特性包括:① 確定性。演算法的每一種運算必須有確定的意義,該種運算應執行何種動作應無二義性,目的明確;② 能行性。要求演算法中有待實現的運算都是基本的,每種運算至少在原理上能由人用紙和筆在有限的時間內完成;③ 輸入。一個演算法有0個或多個輸入,在演算法運算開始之前給出演算法所需數據的初值,這些輸入取自特定的對象集合;④ 輸出。作為演算法運算的結果,一個演算法產生一個或多個輸出,輸出是同輸入有某種特定關系的量;⑤ 有窮性。一個演算法總是在執行了有窮步的運算後終止,即該演算法是可達的。
滿足前四個特性的一組規則不能稱為演算法,只能稱為計算過程,操作系統是計算過程的一個例子,操作系統用來管理計算機資源,控製作業的運行,沒有作業運行時,計算過程並不停止,而是處於等待狀態。
3、演算法的描述
演算法的描述方法可以歸納為以下幾種:
(1) 自然語言;
(2) 圖形,如N�S圖、流程圖,圖的描述與演算法語言的描述對應;
(3) 演算法語言,即計算機語言、程序設計語言、偽代碼;
(4) 形式語言,用數學的方法,可以避免自然語言的二義性。
用各種演算法描述方法所描述的同一演算法,該演算法的功用是一樣的,允許在演算法的描述和實現方法上有所不同。
人們的生產活動和日常生活離不開演算法,都在自覺不自覺地使用演算法,例如人們到商店購買物品,會首先確定購買哪些物品,准備好所需的錢,然後確定到哪些商場選購、怎樣去商場、行走的路線,若物品的質量好如何處理,對物品不滿意又怎樣處理,購買物品後做什麼等。以上購物的演算法是用自然語言描述的,也可以用其他描述方法描述該演算法。