排序:
一般是原地排序(in-place)
排序:預設情況下都是按非降序排序
穩定性:能保證排序過程中相等的資料的相對順序不變
1.插入排序:(越接近有序,執行時間效率越高)
減治演算法排序(直接插入排序,折半插入排序)
一共需要進行size-1次插入
插入過程:每次把無序區間的第乙個數,在有序區間遍歷(從後往前遍歷)
1)找到合適的位置
2)搬移原有資料,為該資料騰出位置
2.希爾排序:(利用插入排序中,越接近有序,時間效率越高)
在插入排序之前做預排序(分組插排),使資料盡可能接近有序
先分組再對每組進行插入排序,分的組的個數為gap=gap/3+1;
直到gap==1退出
3.選擇排序:(直接選擇排序、堆排序)
減治演算法
每次遍歷無序區間(直接遍歷、利用堆),找到無序區間的最大的數
把最大的數放到無序區間的最後邊
一直選擇n-1(n)數之後,資料完全有序
最重要的就是確定有序、無序區間
堆排序:
按公升序的話,必須建大堆
按降序的話,必須建小堆
冒泡 選擇 插入 希爾排序
include include include using namespace std template void print const t a,int n 氣泡排序 每次迴圈總是將最大元素移到隊尾 o n 2 穩定的排序演算法 templatevoid bubblesort t a,int n ...
排序 之 插入 希爾 選擇
插入排序類似於插入撲克牌 通過一次次遍歷,進行排序 插入排序 public static void insertsort int arr arr end 1 key 希爾排序是插入排序的優化,通過隔幾個一排進行優化 希爾排序 public static void shellsort int arr ...
初級排序方法 選擇 插入 希爾排序
初級排序方法是最基本的排序方法,主要包括選擇排序 插入排序以及希爾排序。選擇排序的原理是通過比較整個陣列,找到最小值,然後將最小值與陣列中第乙個位置的數字進行交換,依靠迴圈來完成對整個陣列的排序。對於乙個由n個元素組成的陣列,這種方法進行 n 2 2次比較和n次交換,並且無論輸入是什麼情況,其比較和...