幾種常見的演算法比較

2021-08-08 05:32:20 字數 586 閱讀 8015

排序演算法總結:

時間複雜度:

-平方階o(n2)的排序:各類簡單排序、直接插入、直接選擇、氣泡排序

- 線性對數o(nlg2n)排序:快速排序、堆排序和歸併排序

- o(n1+)排

序:為介於0-1之間的常數:希爾排序

- 線性o(n)排序:基數排序、桶排序、箱排序

空間複雜度:

穩定性:

特別注意:

1. 當輸入陣列有序或者基本有序時,直接插入和氣泡排序將大大減少比較次數和移動次數。時間複雜度降為o(n)。

2. 快速排序恰恰相反,當輸入陣列基本有序時,將退化為氣泡排序,時間複雜度增加到o(n2)

3. 輸入陣列有序與否對簡單排序、堆排序、歸併排序、和基數排序的時間複雜度影響不大。

常用演算法比較圖:

幾種常見的查詢演算法之比較

一 順序查詢 條件 無序或有序佇列。原理 按順序比較每個元素,直到找到關鍵字為止。時間複雜度 o n 二 二分查詢 折半查詢 條件 有序陣列 原理 查詢過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中...

幾種常見的演算法

1 窮舉法 窮舉法是最基本的演算法設計策略,其思想是列舉出問題所有的可能解,逐一進行判別,找出滿足條件的解.窮舉法的運用關鍵在於解決兩個問題 在運用窮舉法時,容易出現的問題是可能解過多,導致演算法效率很低,這就需要對列舉可能解的方法進行優化.以題1041 純素數問題為例,從1000到9999都可以看...

比較常見的幾種設計模式

第一種設計模式 單例模式 解釋 乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,不需要例項化該類的物件。但是在js中沒有類這個概念,所以我們要通過一些別的手段來實現單例。優點 1 在記憶體裡只有乙個例項,減少了記憶體的開銷,尤其...