LinuxC/C++编程基础(10) quicksort的简单实现

源代码如下:

#include
#include
#include
#define ARRAYLENGTH 30
#define RANGE 100


void swap(int& key1,int& key2){
int temp = key1;
key1 = key2;
key2 = temp;
}
int partition(int A[],int p,int r){
int x = A[r];
int i = p - 1;
for(int j=p;jif(A[j] <= x){
i += 1;
swap(A[i],A[j]);
}
}
swap(A[i+1],A[r]);
return i+1;
}


void quicksort(int A[],int p,int r){
int q = 0;
if(p < r){
q = partition(A,p,r);
quicksort(A,p,q-1);
quicksort(A,q+1,r);
}
}


int main(int argc,char** argv){
int A[ARRAYLENGTH] = {-1};
srand(time(NULL));
for(int i=0;iA[i] = rand() % RANGE;
}
printf("before quicksort\n");
for(int k=0;kprintf("%d ",A[k]);
}
quicksort(A,0,ARRAYLENGTH-1);
printf("\nafter quicksort\n");
for(int j=0;jprintf("%d ",A[j]);
}
return 0;
}


说明:代码简洁明了,无需赘述

转载请注明出处:山水间博客 http://blog.csdn.net/linyanwen99/article/details/8231288

你可能感兴趣的:(山水间文集)