插入、希爾、選擇排序

排序:
一般是原地排序(In-place)
排序:默認情況下都是按非降序排序
穩定性:能保證排序過程中相等的數據的相對順序不變
1.插入排序:(越接近有序,執行時間效率越高)
減治算法排序(直接插入排序,折半插入排序)
一共需要進行size-1次插入
插入過程:每次把無序區間的第一個數,在有序區間遍歷(從後往前遍歷)
1)找到合適的位置
2)搬移原有數據,爲該數據騰出位置
2.希爾排序:(利用插入排序中,越接近有序,時間效率越高)
在插入排序之前做預排序(分組插排),使數據儘可能接近有序
先分組再對每組進行插入排序,分的組的個數爲gap=gap/3+1;
直到gap==1退出
3.選擇排序:(直接選擇排序、堆排序)
減治算法
每次遍歷無序區間(直接遍歷、利用堆),找到無序區間的最大的數
把最大的數放到無序區間的最後邊
一直選擇n-1(n)數之後,數據完全有序
最重要的就是確定有序、無序區間
堆排序:
按升序的話,必須建大堆
按降序的話,必須建小堆
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章