1 int Partition (Type a[], int p, int r)
2 {
3 int i = p, j = r + 1;
4 Type x=a[p];
5 // 将< x的元素交换到左边区域
6 // 将> x的元素交换到右边区域
7 while (true) {
8 while (a[++i] <x);
9 while (a[- -j] >x);
10 if (i >= j) break;
11 Swap(a[i], a[j]);
12 }
13 a[p] = a[j];
14 a[j] = x;
15 return j;
16 }
17 void QuickSort (Type a[], int p, int r)
18 {
19 if (p<r) {
20 int q=Partition(a,p,r);
21 QuickSort (a,p,q-1); //对左半段排序
22 QuickSort (a,q+1,r); //对右半段排序
23 }
24 }
posted on 2009-02-06 22:44
混沌的云 阅读(349)
评论(0) 编辑 收藏 引用