幾種排序,希爾排序,快速排序,堆排序,歸併排序

2021-09-12 08:04:37 字數 808 閱讀 3248

因為最近看了一點stl,所以用vector代替了陣列,從別的地方借鑑了很多,只是簡單的實現,也沒有做什麼優化,其實也不會

#include #include#includeusing namespace std;

void print(vectorv)

swap(v[left],v[high]);

quick_sort1(v,low,left-1);//左邊

quick_sort1(v,left+1,high);//右邊

}void quick_sort2(vector&v,int low,int high) //不交換的方法

v[left]=key;

quick_sort2(v,low,left-1);//左邊

quick_sort2(v,left+1,high);//右邊

}void merge(vector&v,int low,int mid,int high)

else if(r>high)

else if(a[l]<=a[r])

else

}}void merge_sort(vector&v,int low,int high) //歸併排序

void max_heap(vector&v,int begin,int end)

}}void heap_sort(vector&v)

}int main()

; vectorv(a,a+16);

bucket_sort(v);

print(v);

return 0;

}

希爾排序,堆排序,快速排序

插入排序的改進演算法,不穩定的排序演算法,空間複雜度為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 ...

希爾排序,堆排序,快速排序

希爾排序 最優情況下 時間複雜度為 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 快速排序 快排在樞紐選取時可以優化,三...