排序:
通常是原地排序(In-place)
排序:默認狀況下都是按非降序排序
穩定性:能保證排序過程當中相等的數據的相對順序不變
1.插入排序:(越接近有序,執行時間效率越高)
減治算法排序(直接插入排序,折半插入排序)
一共須要進行size-1次插入
插入過程:每次把無序區間的第一個數,在有序區間遍歷(從後往前遍歷)
1)找到合適的位置
2)搬移原有數據,爲該數據騰出位置
2.希爾排序:(利用插入排序中,越接近有序,時間效率越高)
在插入排序以前作預排序(分組插排),使數據儘量接近有序
先分組再對每組進行插入排序,分的組的個數爲gap=gap/3+1;
直到gap==1退出
3.選擇排序:(直接選擇排序、堆排序)
減治算法
每次遍歷無序區間(直接遍歷、利用堆),找到無序區間的最大的數
把最大的數放到無序區間的最後邊
一直選擇n-1(n)數以後,數據徹底有序
最重要的就是肯定有序、無序區間
堆排序:
按升序的話,必須建大堆
按降序的話,必須建小堆算法