前言
前面給大家講述了各大排序算法的原理、思路以及實現(xiàn)步驟、代碼碼源,下面讓我們來對比一下各大排序之間的算法復(fù)雜度以及穩(wěn)定性分析優(yōu)劣,加深我們對于各排序算法的理解,幫助我們以后能更快的在具體場景下選擇出最適的排序算法。
[ 一 ] 小數(shù)據(jù)基本排序算法
(1)冒泡排序
【數(shù)據(jù)結(jié)構(gòu)】冒泡排序 (碼源實現(xiàn))
(2)直接插入排序
【數(shù)據(jù)結(jié)構(gòu)】插入排序
[ 二 ] (由基本排序衍生的用作)處理大數(shù)據(jù)處理排序
(1)堆排序
【數(shù)據(jù)結(jié)構(gòu)】堆排序(C代碼實現(xiàn) 碼源)
(2)希爾排序
【數(shù)據(jù)結(jié)構(gòu)】希爾排序
[ 三 ] 大數(shù)據(jù)速度排序方法
(1)快速排序
【數(shù)據(jù)結(jié)構(gòu)】深入淺出理解快速排序背后的原理 以及 版本優(yōu)化【萬字詳解】(C語言實現(xiàn))
(2)歸并排序
【數(shù)據(jù)結(jié)構(gòu)】歸并排序 的遞歸實現(xiàn)與非遞歸實現(xiàn)
[ 四 ] 極致速度的整型數(shù)據(jù)類型的排序
(1)計數(shù)排序
【數(shù)據(jù)結(jié)構(gòu)】深入淺出講解計數(shù)排序【圖文詳解,搞懂計數(shù)排序這一篇就夠了】
[ 五 ] 其他排序
(1)基數(shù)排序:一位一位比較
(2)桶排序
這兩種在這里不過多贅述,因為不如前面的高級排序更好,更加適用
一、各排序算法的分析和比較
內(nèi)排序:內(nèi)存中排序
外排序:在磁盤中排序 【數(shù)據(jù)太多,內(nèi)存放不下,轉(zhuǎn)存磁盤了】
- 磁盤一大特點:
- 順序讀 順序?qū)?/li>
- 不像內(nèi)存那樣支持下標訪問,所以外排序會非常慢
歸并排序既可以在內(nèi)存中排序(內(nèi)排序),也可以在磁盤中排序(外排序)
二、歸并排序 外排序算法思路詳解
☆三、穩(wěn)定性 概念講解
相同的數(shù)據(jù)排序后,相對位置是否變化
穩(wěn)定性的意義 及 實際應(yīng)用:
如考試中,考試排名取前三名,先交卷用時少的,成績先進入數(shù)組
排名中成績高排優(yōu)先級更高,若成績相同時,用時少的優(yōu)先級更高
或 總分相同的,數(shù)學(xué)更高的優(yōu)先級更高。
這經(jīng)常應(yīng)用于 結(jié)構(gòu)體排序( 用結(jié)構(gòu)體指針按某一項去進行比較 )
文章來源:http://www.zghlxwxcb.cn/news/detail-743177.html
四、排序算法復(fù)雜度 及 穩(wěn)定性分析
- 直接插入排序 穩(wěn) 遇到相等的就不再往前移了
-
- 歸并排序 不穩(wěn)改穩(wěn)
多為 結(jié)構(gòu)體指針 談穩(wěn)定性,計數(shù)排序談穩(wěn)定性無價值。
- 歸并排序 不穩(wěn)改穩(wěn)
總結(jié)
文章來源地址http://www.zghlxwxcb.cn/news/detail-743177.html
到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)】排序算法復(fù)雜度 及 穩(wěn)定性分析 【圖文詳解】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!