排序算法模板
原文地址:https://www.acwing.com/blog/content/277/
快速排序算法模板 —— 模板題 AcWing 785. 快速排序
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);
}
歸并排序算法模板 —— 模板題 AcWing 787. 歸并排序
void merge_sort(int q[], int l, int r)
{
? ? if (l >= r) return;
? ? int mid = l + r >> 1;
? ? merge_sort(q, l, mid);
? ? merge_sort(q, mid + 1, r);
? ? int k = 0, i = l, j = mid + 1;
? ? while (i <= mid && j <= r)
? ? ? ? if (q[i] <= q[j]) tmp[k ++ ] = q[i ++ ];
? ? ? ? else tmp[k ++ ] = q[j ++ ];
? ? while (i <= mid) tmp[k ++ ] = q[i ++ ];
? ? while (j <= r) tmp[k ++ ] = q[j ++ ];
? ? for (i = l, j = 0; i <= r; i ++, j ++ ) q[i] = tmp[j];
}
作者:yxc
鏈接:https://www.acwing.com/blog/content/277/
來源:AcWing
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
- 上一篇: 信息学奥赛一本通(2028:【例4.14
- 下一篇: 信息学奥赛一本通 2037:【例5.4】