最近在準備資料結構的考試,於是用部落格記錄下自己複習的過程。今天的內容是三種高階排序。
希爾排序
當序列增量為incr[k]=2(t-k+1)-1時,時間複雜度為o(n1.5)。以序列增量分組,對每組進行大小調整。
templatevoid shellinsert(t elem,int n,int incr)
templatevoid quicksort(t elem,int n)
堆排序
最壞情況下時間複雜度為o(nlogn),只占用乙個用於臨時交換的臨時儲存空間
templatevoid siftadjust(int elem,int high,int low)
}templatevoid heapsort(int elem,int n)
}
希爾排序,堆排序,快速排序
插入排序的改進演算法,不穩定的排序演算法,空間複雜度為o 1 public static void shellsort int a 氣泡排序的改進演算法,不穩定的排序演算法 空間複雜度在o log2n 和o n 之間 時間複雜度在o n 和o n2 之間,平均時間複雜度為o nlog2n 而當陣列初...
希爾排序,堆排序,快速排序
希爾排序 最優情況下 時間複雜度為 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 快速排序 快排在樞紐選取時可以優化,三...
幾種排序,希爾排序,快速排序,堆排序,歸併排序
因為最近看了一點stl,所以用vector代替了陣列,從別的地方借鑑了很多,只是簡單的實現,也沒有做什麼優化,其實也不會 include include includeusing namespace std void print vectorv swap v left v high quick so...