常用sort演算法比較

2021-08-23 12:31:23 字數 1012 閱讀 6788

search和sort是最基礎的演算法,基礎但重要!

search的話,binary search最簡單實用。

sort,上面是常用sort對比,看圖,其實也沒啥可說的了。

注:1、bubble、selection和insert sort統稱為簡單排序,優點是程式相對簡單、好寫,但時間複雜度較差o(n^2);

2、穩定排序(排序時,相同元素不調換位置):bubble、insert、merge和radix sort是穩定的;不穩定是因為元素調換位置時的間隔大於1(選擇排序和希爾排序可以較明顯看出);

3、shell sort基於insert sort,其時間複雜度由其程式中的遞減間隔序列決定,最好也是o(n^2);heap sort基於selection sort,看起來其時間複雜度還不錯,但是實際中和快速排序哪個更快,還得看情況;

4、quick search,可以稱之為網紅排序。資料量較大時可用,但資料量較小時不如用插入排序。步驟:選主元—劃分子集—遞迴分治,其中選主元可以用不同方法如:直接取左|右端元素、median3等方法;

5、merge sort除了要用額外空間o(n)外,都挺不錯;

6、radix sort基於bucket sort,只是按基數去選擇bucket,在某些情況下,其可以達到線性時間複雜度;

7、search 和 sort除了在要用的時候靈活使用外,重要的就是其時間、空間複雜度、穩定性、使用(情況)條件等。某些情況下(如面試),這些演算法(套路)及其特點(白紙上)寫到、背到滾掛爛熟,會是乙個漂亮的開始……

程式設計=演算法+資料結構,程式設計就像做菜,資料結構是食材,演算法是食譜,想把菜做好,備上好食材、好食譜,然後練吧。

面試時,考官有可能讓現場在黑板上寫程式,邊寫邊和考官討論效果較好。但前提是得準備好,提前瘋狂在白紙上和pc環境(leetcode啥的)上刷題是最直接的方法。

恩……想必這些大家都知道,可以,就差行動了……

本渣要去學習,88……

常用排序演算法比較

不穩定 選擇排序 selection sort o n2 快速排序 quicksort o nlogn 平均時間,o n2 最壞情況 對於大的 亂序串列一般認為是最快的已知排序 堆排序 heapsort o nlogn 希爾排序 shell sort o nlogn 基數排序 radix sort ...

常用演算法排序比較

先看圖 2.三種簡單排序演算法簡單,但是效率低下 高階排序在簡單排序基礎上優化,演算法複雜,換取的是效能提高,同時可能需要更多的輔助空間。3.快速排序和歸併排序都使用了分治和遞迴,所以面試時被問到的機會比較高,尤其是快速排序。4.從時間效能上看,快速排序是所有排序演算法中實際效能最好的,然而快速排序...

DS 常用排序演算法比較

1.穩定性比較 插入排序 氣泡排序 二叉樹排序 二路歸併排序及其他線形排序是穩定的 選擇排序 希爾排序 快速排序 堆排序是不穩定的 2.時間複雜性比較 插入排序 氣泡排序 選擇排序的時間複雜性為o n2 其它非線形排序的時間複雜性為o nlog2n 線形排序的時間複雜性為o n 3.輔助空間的比較 ...