void quicksort(int *arr,unsigned int cont);
int main(int argc,const char *argv[])
{
int arr[32] = {0};
int i = 0;
for(;i<32;i++){
arr[i] = rand()%100;
printf("%d ",arr[i]);
}
printf("\narr:\n");
quicksort(arr,sizeof(arr)/4);
for(i = 0;i<32 ; i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
void quicksort(int *arr ,unsigned int cont)
{
if(cont < 2) return;
int itmp = arr[0];
int ileft = 0;
int iright = cont;
int imoving = 2;
while(ileft < iright){
if(imoving == 2){
if(arr[iright] >= itmp){
iright--;
continue;
}
arr[ileft] = arr[iright];
ileft++;
imoving=1;
continue;
}
if(imoving==1){
if(arr[ileft] <= itmp){
ileft++;
continue;
}
arr[iright] = arr[ileft];
iright--;
imoving=2;
continue;
}
}
arr[ileft] = itmp;
/*
* if(ileft < 10)
* //insort();
* else
* quicksort();
* */
quicksort(arr,ileft);
quicksort(arr+ileft,cont-ileft-1);
}
快速排序
最新推荐文章于 2024-07-17 10:35:12 发布