希爾排序:
// 最優情況下 時間複雜度為 o(n^1.3) ; 最差的情況下為 o(n^2) ,增量序列的最後乙個增量值必須等於1
shell_sort(vector&v1)
堆排序:
void heapadjust(int a, int m, int n)
for(i=n; i>1; i--)
}
快速排序:
// 快排在樞紐選取時可以優化, 三數取中; 優化不需要的交換 , 交換直接變賦值; 優化小陣列時的排序, high-low 小於一定個數時用直接插入排序
// 最好情況下 時間複雜度為o(n) 最壞 時間複雜度 o(n^2);
void swap(vector& v1 , int index1, int index2)
int sortcore(vector&v1, int low, int high)
return low ;
}void qsort(vector& v1,int low , int high)
}
希爾排序,堆排序,快速排序
插入排序的改進演算法,不穩定的排序演算法,空間複雜度為o 1 public static void shellsort int a 氣泡排序的改進演算法,不穩定的排序演算法 空間複雜度在o log2n 和o n 之間 時間複雜度在o n 和o n2 之間,平均時間複雜度為o nlog2n 而當陣列初...
希爾排序,快速排序,堆排序
最近在準備資料結構的考試,於是用部落格記錄下自己複習的過程。今天的內容是三種高階排序。希爾排序 當序列增量為incr k 2 t k 1 1時,時間複雜度為o n1.5 以序列增量分組,對每組進行大小調整。templatevoid shellinsert t elem,int n,int incr ...
幾種排序,希爾排序,快速排序,堆排序,歸併排序
因為最近看了一點stl,所以用vector代替了陣列,從別的地方借鑑了很多,只是簡單的實現,也沒有做什麼優化,其實也不會 include include includeusing namespace std void print vectorv swap v left v high quick so...