前言:之前也寫過一篇針對排序的文章八大排序,其中也把快排的幾種實作思路實作了一遍,但是無論是哪一種版本代碼行數起碼都在二十行以上,這倆天剛好看見一段“相當優美的快排模板”,建議可以直接背下來,
文章目錄
- 1.快排思路:
- 2.快排代碼
1.快排思路:

主要就是“分治”思想,瘋狂遞回下去!
選一個關鍵x,這里取中間數,
單趟:x的左邊值比它小,x右邊值比它大,找出不符合的,交換一下
單趟拍完,再想辦法讓左邊區間有序,key的右邊區間有序,
2.快排代碼
void quick_sort(int l, int r, int q[])
{
if (l >= r) return;
int i = l - 1, j = r + 1, x = q[(l + r) / 2];
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(l, j, q), quick_sort(j + 1, r, q);
}
贊不絕口,太優美啦!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342263.html
標籤:其他
上一篇:【linux】——檔案系統
