public void sort(int l, int u) {
if (l >= u) {
return;
}
int m = l;
for (int i = l + 1; i <= u; i++) {
if (array[i] < array[l]) {
swap(++m, i);
}
}
swap(l, m);
print(array);
sort(l, m - 1);
sort(m + 1, u);
}
public void swap(int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
C 的实现:
void printA(int * ar,int size);
void swap(int i,int j);
void sort(int l,int u);
void printA(int * ar,int size){
int i=0;
for(i;i<size;i++){
printf("%d,",ar[i]);
}
printf("\n");
}
void swap(int i,int j){
int temp = array[i];
array[i]= array[j];
array[j]=temp;
}
void sort(int l,int u){
if(l>=u){
return;
}
int i,m;
m = l;
for(i=m+1;i<=u;i++){
if(array[i]<array[l]){
swap(++m,i);
}
}
swap(l,m);
sort(l,m-1);
sort(m+1,u);
}
程序的输出为:
12,13,27,49,65,76,68,
12,13,27,49,65,76,68,
12,13,27,49,65,76,68,
12,13,27,49,65,76,68,
12,13,27,49,65,68,76,