排序演算法的依據——關鍵字
關鍵字的穩定性應根據具體問題而定。
當待排序記錄的關鍵字均不相同時,排序結果是唯一的,否則排序結果不唯一。若存在多個關鍵字相同的記錄,經過排序後,這些具有相同關鍵字的記錄之間的相對次序保持不變,該排序方法是穩定的;否則稱這種排序方法是不穩定的。
穩定的排序(sort)
時間複雜度
空間複雜度
氣泡排序(bubble)
最差、平均都是o(n^2);最好是o(n)
1雞尾酒排序(cocktail,雙向的氣泡排序)
最差、平均都是o(n^2);最好是o(n)
1插入排序(insertion)
最差、平均都是o(n^2);最好是o(n)
1歸併排序(merge)
最差、平均和最好都是o(nlogn)
o(n)
桶排序(bucket)
o(n)
o(k)
基數排序(radix)
o(dn) (d是常數)
o(n)
二叉樹排序(binary tree)
o(nlogn)
o(n)
圖書館排序(library)
o(nlogn)
(1+ε)n
不穩定的排序
時間複雜度
空間複雜度
選擇排序(selection)
最差、平均都是o(n^2)
1希爾排序(shell)
o(nlogn)
1堆排序(heap)
最差、平均和最好都是o(nlogn)
1快速排序(quick)
平均是o(n logn),最壞情況下是o(n^2)
o(log n)
排序演算法時間複雜度 空間複雜度 穩定性整理
涉及排序演算法包括 簡單選擇排序 直接插入排序 希爾排序 歸併排序 氣泡排序 快速排序 堆排序 基數排序 時間複雜度 快些以nlogn的速度歸隊 此句表示時間複雜度為o nlogn 的排序,快 表示快速排序,些 表示希爾排序,歸 表示歸併排序,隊 表示堆排序,其他排序均為o n 特殊的基數排序為o ...
常用排序演算法穩定性 時間複雜度
首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前兩個相等的資料其在序列中的先後位置順序與排序後它們兩個先後位置順序相同。再簡單具體一點,如果a i a j,ai 原來在 aj 位置前,排序後 ai 仍然 是在 aj 位置前。下面我們分析一下穩定性的好處 1 如果排序演算法是穩定的,那...
排序演算法穩定性
學習中,有個問題叫做排序演算法穩定性 若待排序的序列中,存在多個具有相同關鍵字的記錄,經過排序,這些記錄的相對次序保持不變,則稱該演算法是穩定的 若經排序後,記錄的相對 次序發生了改變,則稱該演算法是不穩定的。假定在待排序的記錄序列中,存在多個具有相同鍵值的記錄,若經過排序,這些記錄的相對次序保持不...