#include <stdio.h>
#include <stdlib.h>
void swap(int *a , int *b)
{
int tmp = *b;
*b = *a;
*a = tmp;
//printf("swap = %d_%d\n",*a,*b);
}
int quicksort(int *ArrayPtr , int left , int right)
{
int Pivot , i ,j;
if(left >= right)
{
return -1;
}
Pivot = *(ArrayPtr + left);
i = left + 1;
j = right;
while(1)
{
while( i <= right)
{
if(*(ArrayPtr + i) > Pivot){
break;
}
i++;
}
while(j > left)
{
if(*(ArrayPtr + j) < Pivot)
{
break;
}
j--;
}
if( i > j)
break;
swap(ArrayPtr + i , ArrayPtr + j);
}
swap(ArrayPtr + left , ArrayPtr +j);
quicksort(ArrayPtr , left , j-1);
quicksort(ArrayPtr , j+1 , right);
return 0;
}
int main(void)
{
int data[10]={3,11,9,1,2,8,4,5,1} ,i;
quicksort(data, 0, 9 - 1);
for(i = 0 ;i <9 ;i++){
printf("%d_",data[i]);
}
return 0;
}
code: https://drive.google.com/file/d/0B8hm-I2M8BD7cHJldHZIZXNZS28/view?usp=sharing
沒有留言:
張貼留言