#include <stdio.h>
#include <stdlib.h>
void PrintArray(int *array,int len)
{
int j=0;
for(j=0;j<len;j++)
{
printf("%d\t",array[j]);
}
printf("\n");
}
void QuickSort(int *array,int start,int end)
{
int temp=array[start];
int i=start;
int j=end;
if(i<j)
{
while(i<j)
{
//从右向走找到比temp值小的
while(i<j&&array[j]>=temp)
{
j--;
}
//填坑
if(i<j)
{
array[i]=array[j];
i++;
}
//从zou向右找到比temp值大的
while(i<j&&array[i]<temp)
{
i++;
}
//填坑
if(i<j)
{
array[j]=array[i];
j--;
}
}
//把基准数放在i的位置
array[i]=temp;
//对走左部分递归
QuickSort(array,start,i-1);
//对走右部分递归
QuickSort(array,i+1,end);
}
}
void main()
{
int array[]={29,2,45,3,8,14,36,27,67.41,52};
int len=sizeof(array)/sizeof(int);
PrintArray(array,len);
QuickSort(array,0,len-1);
PrintArray(array,len);
}
效果展示