一、快速排序演算法(冒泡排序演算法的升級版)
1.1 撰寫快速排序,記住下面的內容,代碼也就游刃有余了!
(1) 首先確定分界點:分界點設為x,可以取q[left],q[(left+right)>>2],q[right]任意一個,建議就取中間值,
(2) 取完分界點,然后就可以重新調整區間:分為<=x,>=x 兩個左右區間,保證左邊的數都小于等于x,右邊的數都大于等于x,
(3) 最后一步就是遞回處理左右兩端,
二、快速排序演算法的核心
2.1 分治
三、快速排序演算法的代碼模板
void quick_sort(int q[], int l, int r)
{
if (l >= r) return;
int i = l - 1, j = r + 1, x = q[l + r >> 1];//確定分界點
while (i < j)
{
do i ++ ; while (q[i] < x);
do j -- ; while (q[j] > x);
if (i < j) swap(q[i], q[j]);
}//重新調整區間
quick_sort(q, l, j), quick_sort(q, j + 1, r);//遞回處理左右兩端
}
查看更多
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/91955.html
標籤:其他
上一篇:Linux內核單鏈表
