根据算法导论思想,编写的代码
#include <stdio.h>
void swap(int* a,int* b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int partition(int* A,int p,int r)
{
int i=p-1;
int x = *(A+r);
for(int j=p;j<r;j++){
if(A[j]<=x){
i +=1;
swap((A+i),(A+j));
}
}
swap((A+i+1),(A+r));
return i+1;
}
void quick_sort(int A[],int p,int r)
{
if(p<r){
int q = partition(A,p,r);
quick_sort(A,p,q-1);
quick_sort(A,q+1,r);
}
}
int main()
{
int A[] = {89,25,100,52,63,120,8};
quick_sort(A,0,6);
for(int i=0;i<7;i++){
printf("%d ",A[i]);
}
return 0;
}
亲测有效!!!