1 #include<stdio.h>
2
3 int partition(int A[], int m, int n)
4 {
5 int x = A[m];
6 int i = m;
7 int j,temp;
8 for(j = m + 1; j <= n; j++)
9 {
10 if(A[j] <= x)
11 {
12 i=i+1;
13 temp = A[i];
14 A[i] = A[j];
15 A[j] = temp;
16 }
17 }
18 temp = A[i];
19 A[i] = A[m];
20 A[m] = temp;
21 return i;
22 }
23
24 void quicksort(int A[], int m, int n)
25 {
26 int q;
27 if(m < n)
28 {
29 q = partition(A, m, n);
30 quicksort(A, m, q-1);
31 quicksort(A, q+1, n);
32 }
33 }
34
35 int main()
36 {
37 int A[10] = {20, 54, 5, 56, 0, -78, 64, 6, 8, 6};
38 int i;
39
40 printf("排序前:");
41 for(i = 0; i < 10; i++)
42 {
43 printf("%5d", A[i]);
44 }
45 printf("\n");
46
47 quicksort(A, 0, 9);
48
49 printf("排序后:");
50 for(i = 0; i < 10; i++)
51 {
52 printf("%5d", A[i]);
53 }
54 printf("\n");
55
56 return 0;
57 }