演算法的基本概念

2021-06-28 12:56:36 字數 2213 閱讀 7638

所謂演算法是指解決方****而完整的描述。

對於乙個問題,如果可以通過乙個電腦程式,在有限的儲存空間內執行有限的時間,而得到正確的結果,則稱這個問題是演算法可解的。但演算法不等於程式,也不等於計算方法。當然,程式也可以作為演算法的一種描述,但程式通常還需要考慮很多與方法和分析無關的細節問題,這是因為在編寫程式時要受到計算機系統執行環境的限制。通常,程式的編制不可能優於演算法的設計。

1.演算法的基本特徵

(1)可行性(effectiveness)

針對實際問題設計演算法,人們總希望能夠得到滿意的結果。但乙個演算法又總是在某個特定的計算工具上執行的,因此,演算法在執行的過程中往往要受到計算工具的限制,使執行結果產生偏差。例:若某計算工具具有7位有效數字,則設:a=10^12,b=1,c=-10^12,則a+b+c=0,a+c+b=1。所以在設計乙個演算法的時候必須考慮他的可行性。

(2)確定性(definiteness)

演算法的確定性,是指演算法中的每乙個步驟必須是有明確定義的,不允許有模凌兩可的解釋,也不允許有多義性。在解決實際問題時,可能會出現這樣的情況:針對某種特殊問題,數學公式是正確的,但按此數學公式設計的計算過程可能會使計算機系統無所適從。這是因為根據數學公式設計的計算過程只考慮了正常使用的情況,而當出現異常情況時,次計算過程就不能適應了。

(3)有窮性(finiteness)

演算法的有窮性,是指演算法必須能在有限的時間內做完。演算法的有窮性還應包括合理的執行時間的含義。若乙個演算法需要執行千萬年,顯然失去了使用的價值。

(4)擁有足夠的情報

乙個演算法執行的結果總是與輸入的初始資料有關,不同的輸入將會有不同的結果輸出。但輸入不夠或輸入錯誤時,演算法本身也就無法執行或導致執行有錯。

綜上所述,所謂演算法,是一組嚴謹地定義運算順序的規則,並且每乙個規則都是有效的,且是明確的,此順序將在有限的次數下終止。

2.演算法的基本要素

乙個演算法通常由兩種基本要素組成:一是對資料物件的運算和操作,二是演算法的控制結構。

(1)演算法中對資料的運算和操作

通常,計算機可執行的基本操作是以指令的形式描述的。在一般的計算機系統中,基本的運算和操作有以下四類:

1.算術運算:主要包括加、減、乘、除等運算。

2.邏輯運算:主要包括「與」、「或」、「非」等運算。

3.關係運算:主要包括「大於」、「小於」、「等於」、「不等於」等運算。

4.資料傳輸:主要包括賦值、輸入、輸出等操作。

(2)演算法的控制結構

演算法中各操作之間的執行順序稱為演算法的控制結構。

描述演算法的工具通常有傳統流程圖、n-s結構化流程圖、演算法描述語言等。乙個演算法一般都可以用順序、選擇、迴圈三種基本控制結構組合而成。

3.演算法設計基本方法

計算機解題的過程實際上是在實施某種演算法,這種演算法稱為計算機演算法。計算機演算法不同與人工處理方法。

(1)列舉法

基本思想:根據提出的問題,列舉所有的可能,並用問題中給定的條件檢驗哪些是需要的,哪些是不需要的。

(2)歸納法

基本思想:通過列舉少量的特殊情況,經過分析,最後找出一般的關係。

(3)遞推

基本思想:所謂遞推,是指從已知的初始條件出發,逐次推出所要求的各中間結果和最後結果。

(4)遞迴

基本思想:將問題逐層分解,最後歸結為一些最簡單的問題。這種將問題逐層分解的過程,實際上並沒有對問題進行求解,而只是當解決了最後那些最簡單的問題後,再沿著原來分解的逆過程逐步進行綜合,這就是遞迴思想。

遞迴分為直接遞迴和間接遞迴兩種。如果乙個演算法p顯式地呼叫自己則稱為直接遞迴。如果演算法p呼叫另乙個演算法q,而演算法q 又呼叫演算法p,則稱為間接遞迴。

(5)減半遞推技術

所謂「減半」,是指將問題的規模減半,而問題的性質不變;所謂「遞推」,是指重複「減半」的過程。例如用二分法求函式f(x)在某區間[a,b]上的實根,這個二分法就是減半遞推技術的一種表現。

(6)回溯法

有些實際問題很難歸納出一組簡單的遞推公式或直觀的求解步驟,並且也不能進行無限的列舉。對於這類問題,一種有效的方法是「試」。通過對問題的分析,找出乙個解決問題的線索,然後沿著這個線索逐步試探,對於每一步試探,若試探成功,就得到問題的解,若試探失敗,就逐步回退,換別的路線再進行試探。這種方法稱為回朔法。

以上資料均出自:《全國計算機等級考試二級教程——公共基礎知識(2023年版)》,高等教育出版社,2013.5,pag:1-5

演算法基本概念

所謂演算法,就是解決問題的一種方法或乙個過程。具體來講,演算法是由若干指令組成的有窮序列。演算法概念並不是計算機學科獨有的概念,生活到到處可見演算法的應用。演算法要滿足4條性質 1.輸入 2.輸出 3.確定性 4.有限性 複雜性 時間複雜度 t 演算法所求解問題規模n的 函式 漸進時間複雜度 o 當...

演算法基本概念

一什麼是演算法 解決問題的策略機制,重要的是思想 求滿足a b c 1000,a 2 b 2 c 2 條件的所有a,b,c 思路 列舉法,以下被注釋掉的語句就是列舉每個滿足條件的a,b,c 但是這段語句的演算法複雜度太大 改進 a,b的值就確定了c的值,故 改進演算法如下 import time s...

演算法基本概念

演算法 algorithm 評價演算法優劣的依據 複雜度 時間複雜度和空間複雜度 時間複雜度 time complexity eg.某兩個演算法的時間頻度是t n 100000n2 10n 6100000n 2 10n 6 100000 n2 1 0n 6 t n n2 t n n 2 t n n ...