快速排序模板


 1 #include 
 2 #include 
 3 #include <string>
 4 
 5 using namespace std;
 6 int num[100010];
 7 
 8 void QuickSort(int num[], int l, int r) {
 9     if (l >= r) {
10         return;
11     }
12     int x = num[(l + r) >> 1], i = l - 1, j = r + 1;
13     while (i < j) {
14         do i++; while (num[i] < x);
15         do j--; while (num[j] > x);
16         if (i < j) swap(num[i], num[j]);
17     }
18     QuickSort(num, l, j);
19     QuickSort(num, j + 1, r);
20 }
21 
22 int main() {
23     int n;
24     scanf("%d", &n);
25     for (int i = 0; i < n; i++)
26         scanf("%d", &num[i]);
27     QuickSort(num, 0, n - 1);
28     for (int i = 0; i < n; i++)
29         printf("%d ", num[i]);
30     return 0;
31 }