#include<stdio.h>
#include<string.h>
void quickSort(int array[], int left, int right)
{
int x=array[left];
int l =left;
int r =right;
//printf("标兵:%d\r\n", x);
#if 0
for(int i=left; i<= right; i++)
printf("%d ", array[i]);
printf("\r\n");
#endif
if(left < right)
{
while(l < r)
{
while((l<r)&&(array[r] >= x))r--;
if(l < r)
{
//printf("找到右边元素:%d\r\n", array[r]);
array[l++] = array[r];
}
while((l<r)&&(array[l] < x))l++;
if(l < r)
{
//printf("找到左边元素:%d\r\n", array[l]);
array[r--] = array[l];
}
}
array[l] = x;
#if 0
for(i=0; i< 9; i++)
printf("%d ", array[i]);
printf("\r\n");
#endif
quickSort(array,left,l-1);
quickSort(array,l+1,right);
}
}
int main()
{
int array[] ={9,8,7,6,5,1,2,3,4};
for(int i=0; i< sizeof(array)/4; i++)
printf("%d ", array[i]);
printf("\r\n");
quickSort(array,0,sizeof(array)/4-1);
for(i=0; i< sizeof(array)/4; i++)
printf("%d ", array[i]);
printf("\r\n");
}
快排
最新推荐文章于 2024-06-18 08:15:10 发布