文章出處

時間復雜度:

計算機科學中,算法的時間復雜度是一個函數,它定量描述了該算法的運行時間。這是一個關于代表算法輸入值的字符串的長度的函數。時間復雜度常用大O符號表述,不包括這個函數的低階項和首項系數。使用這種方式時,時間復雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。

空間復雜度:

空間復雜度(Space Complexity)是對一個算法在運行過程中臨時占用存儲空間大小的量度,記做S(n)=O(f(n))。

排序算法的穩定性:

假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,則稱這種排序算法是穩定的;否則稱為不穩定的。

穩定的排序算法

冒泡排序、插入排序、歸并排序、基數排序

非穩定的排序算法

選擇排序、希爾排序、快速排序、堆排序

這里可能有些人對選擇排序不是穩定的有疑問,舉個例子,對數組{6, 6, 2}進行選擇排序后,就會產生不穩定的新序列。

小結:

\

如何選擇排序算法:

1.先分析是否需要穩定性的排序

2.再分析空間復雜度是否滿足需求,然后選擇時間復雜度相對快的

3.快速排序是大多數應用場景的首選

寫在最后的:排序算法不要死記硬背復雜度如何、穩定性如何,也不需要將代碼背下來,工業庫已經有各種算法的實現,死記硬背沒有意義。只要真正理解了算法的原理,具體問題具體分析,才能靈活運用,才真正算是學會了算法。

就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161116/54026.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()