快速排序 順序統計量 陣列分割

2021-08-25 19:20:15 字數 562 閱讀 8715

#include #include #define n 2578 

void swap(int *p, int *q)

/* 把a[t]作為參考,將陣列分成三部分: 小於等於a[t],

* a[t]以及大於a[t],分割完畢後,a[t]所在的下標即是a[t]的順序

*/int partition(int *a, int s, int t)

} swap(a+j, a+t);

return j;

}/* 選擇陣列中第i大的元素並返回 */

int quick_select(int *a, int s, int t, int i)

return quick_select(a, p+1, t, i-m);

}void quick_sort(int *a, int s, int t)

}int main()

quick_sort(a, 0, n);

printf("第%d大的數為%d\n", 2, quick_select(a, 0, n, 2));

return 0;

}

排序和順序統計量(演算法導論)

人一生別太狂,指不定誰輝煌 總結排序演算法的執行時間 演算法最壞執行時間 平均期望執行時間 是否是原址排序 插入排序o n2 o n2 是 歸併排序o nlgn o nlgn 否 堆排序o n lgn 是快速排序o n2 o nlgn 期望 是 計數排序o k n o k n 否基數排序o d k ...

排序和順序統計學 2 快速排序

快排我接觸的也比較多了,從之前noip的時候演算法老師講的版本,到之前資料結構課上學習的版本,到現在 演算法導論 裡講的版本,我個人並不能不能區別它們的好壞,權且都寫出來,以後再來區別。三種實現方式如下 noip void qsort1 int a,int l,int r if l資料結構 int ...

演算法導論學習筆記(二)排序和順序統計量

總結各種排序演算法,時間複雜度與空間複雜度,優缺點等。堆排序的時間複雜度是 nlogn n log n 堆排序具有空間原址性。堆是乙個陣列,可以看成一棵近似的完全二叉樹。除了最底層之外,該樹完全填滿,給定乙個節點i,可以很容易地計算其父節點為floor i 2 左子節點為2i,右子節點為2i 1.最...