資料結構基礎篇 2 演算法時間複雜度

2021-07-28 04:33:43 字數 651 閱讀 5121

演算法:是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個動作。

(1)輸入和輸出:演算法具有零個或多個輸入,但演算法至少有乙個或多個輸出,要明確演算法一定是有輸出的,不管是列印輸出還是返回值。

(2)有窮性:指演算法在執行有限的步驟之後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。

(3)確定性:演算法的每一步驟都具有確定的含義,不會出現二義性。

(4)可行性:演算法的每一步都必須是可行的,也就是說,每一步都能夠通過執行有限次數完成。

(1)正確性:演算法的正確性是指演算法至少應該具有輸入、輸出和加工處理無歧義性、能正確反應問題的需求、能夠得到問題的正確答案。

(2)可讀性;要便於閱讀、理解和交流。

(3)健壯性:當輸入資料不合法時,演算法也能做出相關的處理,而不是產生異常或莫名其妙的結果。

(4)時間效率高和儲存量低:主要是指演算法程式執行時所占用的記憶體或外部硬碟儲存空間的大小。

推導大o階方法:

(1)用常數1取代執行時間中的所有加法常數;

(2)在修改後的執行次數函式中,只保留最高端項;

(3)如果最高端項存在且不是1,則去除與這個項相乘的常數。

得到的結果就是大o階。

主要分為常數階、線性階、對數階、平方階。

資料結構,演算法,時間複雜度

什麼是資料結構 data structure 中文維基百科 維基百科中文版 在電腦科學中 是計算機中儲存 組織資料的方式。資料結構意味著介面或封裝 乙個資料結構可被視為兩個函式之間的介面,或者是由資料型別聯合組成的儲存內容的訪問方法封裝。不同種類的資料結構適合不同種類的應用,部分資料結構甚至是為了解...

資料結構基礎篇 3 演算法時間複雜度的常用演算法

int sum 0,n 100 執行一次 sum 1 n n 2 執行一次 system.out.print sum 執行一次 由於t n o f n 此時f n 3,根據之前推導大o階的方法,第一步就是把常數3改為1,沒有最高想,所以它的時間複雜度為o 1 int i,n 100 for i 0 ...

資料結構 演算法基礎 複雜度分析2

最好 最壞 平均 均攤時間複雜度 最好 最壞時間複雜度 示例1 示例1 deffind x,list for item in list if item x pos list index x return pos上述 時間複雜度 等於len list n o n 改寫 deffind2 x,list ...