package Sort;
//快速排序示例
public class KuiSuSort {
public static void printArray(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println("");
}
public static void sort(int a[], int low, int high) {
if (low >= high) {
return;
}
int temp = a[low];
int rlow = low;
int rhigh = high;
int tag = 0;//标志位,0移动high指针,1移动low指针
/* while (high > low) {
if (tag == 0) {
while (high>low) {
if (a[high] < temp) {
a[low] = a[high];
low++;
break;
} else {
high--;
}
}
tag = 1;
} else {
while (high>low) {
if (a[low] > temp) {
a[high] = a[low];
high--;
break;
} else {
low++;
}
}
tag = 0;
}
}*/
while (high > low) {
if (tag == 0) {
if (a[high] < temp) {
a[low] = a[high];
low++;
tag = 1;
} else {
high--;
}
} else {
if (a[low] > temp) {
a[high] = a[low];
high--;
tag = 0;
} else {
low++;
}
}
}
//System.out.println(low + " " + high);
a[low] = temp;
sort(a, rlow, low - 1);
sort(a, low + 1, rhigh);
}
public static void main(String[] args) {
int[] a = { 38, 65, 97, 76, 13, 27, 49, 2, 78, 75, 56, 48, 89, 10, 3,
852 };
printArray(a);
KuiSuSort.sort(a, 0, a.length - 1);
printArray(a);
}
}
</pre><pre>