插入、希爾、選擇排序
排序:
一般是原地排序(In-place)
排序:默認情況下都是按非降序排序
穩定性:能保證排序過程中相等的數據的相對順序不變
1.插入排序:(越接近有序,執行時間效率越高)
減治算法排序(直接插入排序,折半插入排序)
一共需要進行size-1次插入
插入過程:每次把無序區間的第一個數,在有序區間遍歷(從後往前遍歷)
1)找到合適的位置
2)搬移原有數據,爲該數據騰出位置
2.希爾排序:(利用插入排序中,越接近有序,時間效率越高)
在插入排序之前做預排序(分組插排),使數據儘可能接近有序
先分組再對每組進行插入排序,分的組的個數爲gap=gap/3+1;
直到gap==1退出
3.選擇排序:(直接選擇排序、堆排序)
減治算法
每次遍歷無序區間(直接遍歷、利用堆),找到無序區間的最大的數
把最大的數放到無序區間的最後邊
一直選擇n-1(n)數之後,數據完全有序
最重要的就是確定有序、無序區間
堆排序:
按升序的話,必須建大堆
按降序的話,必須建小堆
一般是原地排序(In-place)
排序:默認情況下都是按非降序排序
穩定性:能保證排序過程中相等的數據的相對順序不變
1.插入排序:(越接近有序,執行時間效率越高)
減治算法排序(直接插入排序,折半插入排序)
一共需要進行size-1次插入
插入過程:每次把無序區間的第一個數,在有序區間遍歷(從後往前遍歷)
1)找到合適的位置
2)搬移原有數據,爲該數據騰出位置
2.希爾排序:(利用插入排序中,越接近有序,時間效率越高)
在插入排序之前做預排序(分組插排),使數據儘可能接近有序
先分組再對每組進行插入排序,分的組的個數爲gap=gap/3+1;
直到gap==1退出
3.選擇排序:(直接選擇排序、堆排序)
減治算法
每次遍歷無序區間(直接遍歷、利用堆),找到無序區間的最大的數
把最大的數放到無序區間的最後邊
一直選擇n-1(n)數之後,數據完全有序
最重要的就是確定有序、無序區間
堆排序:
按升序的話,必須建大堆
按降序的話,必須建小堆
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
「遊記」2024 吉林省賽和 2024 東北四省賽
yu__xuan
2024-05-18 14:35:35
Qt/C++音視頻開發74-合併標籤圖形/生成yolo運算結果圖形/文字和圖形合併成一個/水印濾鏡
飛揚青雲
2024-05-18 14:35:25
WPS技巧——MARK住
Danlis
2024-05-18 14:34:35
LightDB通過金融信創生態實驗室測試
zhjh256
2024-05-18 14:32:25
國產數據庫金融行業實踐者:LightDB通過強制性國家標準GB18030-2022最高級別認證
zhjh256
2024-05-18 14:32:25
記一次asp.net 8 服務器爆滿的解決過程
啓天
2024-05-18 14:26:04
一次nginx文件打開數的問題排查處理
馬昌偉
2024-05-18 14:17:33
docker 運行minio standalone模式
菊花茶
2024-05-18 14:15:13
HTML 09 - Quotations
emanlee
2024-05-18 14:14:12
HTML 10 - Comments
emanlee
2024-05-18 14:14:12
Nginx R31 doc 官方文檔-01-nginx 如何安裝
葉止水
2024-05-18 14:01:41
Android 15 的新功能與適配
petercao
2024-05-18 14:00:31
高薪線下週末班馬上開班,手把手帶你提升職業技能
霍格沃茲測試學院
2024-05-18 13:54:11
提升團隊生產力:2024年必知的一體化協同辦公平臺
Worktile
2024-05-18 13:54:00