算法的優劣通常用

來源:生活大全幫 4.87K

算法的優劣通常用

算法的優劣通常用:時間複雜度和空間複雜度、遞推法、遞歸法等等方法。

1、時間複雜度。

算法的時間複雜度是指執行算法所需要的計算工作量。一般來説,計算機算法是問題規模n的函數f(n),算法的時間複雜度也因此記做。

T(n)=Ο(f(n))。

因此,問題的規模n越大,算法執行的時間的增長率與f(n)的增長率正相關,稱作漸進時間複雜度。

2、空間複雜度。

算法的空間複雜度是指算法需要消耗的內存空間。其計算和表示方法與時間複雜度類似,一般都用複雜度的漸近性來表示。同時間複雜度相比,空間複雜度的分析要簡單得多。

空間複雜度記做S(n)=O(f(n))。比如直接插入排序的時間複雜度是O(n^2),空間複雜度是O(1)。而一般的遞歸算法就要有O(n)的空間複雜度了,因為每次遞歸都要存儲返回信息。一個算法的優劣主要從算法的執行時間和所需要佔用的存儲空間兩個方面衡量。

算法的方法:

1、遞推法。

遞推是序列計算機中的一種常用算法。它是按照一定的規律來計算序列中的每個項,通常是通過計算機前面的一些項來得出序列中的指定項的值。其思想是把一個複雜的龐大的計算過程轉化為簡單過程的多次重複,該算法利用了計算機速度快和不知疲倦的機器特點。

2、遞歸法。

程序調用自身的編程技巧稱為遞歸。一個過程或函數在其定義或説明中有直接或間接調用自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重複計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。

一般來説,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進。當邊界條件滿足時,遞歸返回

熱門標籤