演算法和資料結構

2021-09-01 04:19:31 字數 714 閱讀 3807

演算法:

資料結構與演算法的關係是相互依賴不可分割的。

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

演算法的特性:有窮性、確定性、可行性、輸入、輸出。

演算法設計的要求:正確性、可讀性、健壯性、高效率和低儲存量需求。

演算法特性與演算法設計容易混,需要對比記憶。

演算法的度量方法:事後統計方法(不科學、不準確)、事前分析估算方法。

在講解如何用事前分析估算方法之前,我們先給出了函式漸近增長的定義。

演算法的時間複雜度和空間複雜度

函式的漸近增長:給定兩個函式f(n)和g(n),如果存在乙個整數n,使得對於所有的n > n,f(n)總是比g(n)大,那麼,我們說f(n)的增長漸近快於g(n)。於是我們可以得出乙個結論,判斷乙個演算法好不好,我們只通過少量的資料是不能做出準確判斷的,如果我們可以對比演算法的關鍵執行次數函式的漸近增長性,基本就可以分析出:某個演算法,隨著n的變大,它會越來越優於另一演算法,或者越來越差於另一演算法。

然後給出了演算法時間複雜度的定義和推導大o階的步驟。

推導大o階:

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

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

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

存得到的結果就是大o階。

接著我們給出了常見的時間複雜度所耗時間的大小排列: 如圖

演算法和資料結構

演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...

演算法和資料結構

好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您,一開始或至少在我的情況下,我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟糕,您會告訴我 您知道,您甚...

演算法和資料結構

演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...