快速排序 堆排序 歸併排序

2021-05-26 22:09:14 字數 592 閱讀 5735

/*

快速排序

*/#includeusing namespace std;

int a[8] = ;

int sz = sizeof(a)/sizeof(int);

int partition(int a,int p,int r)

int main()

;const int sz = sizeof(a)/sizeof(int);

//堆化:保持最大堆的性質

void maxheapify(int a,int i,int sz)

void heapsort(int a)

}int main()

;int sz = sizeof(a)/sizeof(int);

void merge(int a,int p,int q,int r)

{ int n1 = q - p +1;

int n2 = r - q;

//建立兩個輔助陣列

int *left = new int[n1+1]; //建立左陣列

int *right = new int[n2+1]; //建立右陣列

for(int i=0;i

快速排序,歸併排序,堆排序

l r 1在奇數長度陣列的中間,偶數長度陣列的左半邊最後乙個,極限情況下陣列只有兩個數,i遇到第乙個數就會停下,此時模擬i,j下標的數有無交換的情況,會發現j在停下來時都位於第乙個數的位置,因此用j,j 1才不會越界 l r 1 1在奇數長度陣列的中間往右第乙個,偶數長度陣列的右半邊第乙個,極限情況...

關於快速排序,歸併排序,堆排序

1 快速排序 quicksort 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。1 如果不多於1個資料,直接返回。2 一般選擇序列最左邊的值作為支點資料。3 將序列分成2部分,一部分都大於支點資料,另外一部分都小於支點資料。4...

堆排序 快速排序 歸併排序總結

二分查詢及其擴充套件應用場景 大端和小端的問題 2012 09 21 11 33 41 分類 演算法 資料結構 標籤 演算法資料結構 歸併排序 內部排序面試 舉報 字型大小大中小 訂閱這三個排序以前都寫過,快速排序還寫了遞迴版和迭代版。現在在這裡做一下總結。堆排序 heap sort 堆排序是一種樹...