使用C語言,程式碼如下
void swap(int *x,int *y){
int temp=*x;
*x=*y;
*y=temp;
}
int partition(int a[],int left,int right){
int i,j,pivot;
i=left;
pivot=a[i];
for(j=i+1;j<=right;j++){
if(pivot>=a[j]){
i++; //指在比pivot大的陣列上//
swap(a[i],a[j]);
}
}
a[left]=a[i];
a[i]=pivot;
return i;
}
void quick_sort(int a[],int left,int right){
int mid;
if(left<right){
mid=partition(a,left,right);
quick_sort(a,left,mid-1);
quick_sort(a,mid+1,right);
}
}
int main() {
int n[] = {23,3,12,36,5,11,22,64};
int length=sizeof(n)/sizeof(n[0]);
quick_sort(n,0,7);
for(int z=0;z<length;z++) {
printf("%d,",n[z]);
}
};


