#include <stdio.h>
#include <stdlib.h>
int Partition(int *Array,int low,int high);
int Partition(int *Array,int low,int high)
{
int location=*(Array+low);
while(low<high)
{
while(low<high&&*(Array+high)>=location)
{
high--;
}
if(low<high)
{
*(Array+low)=*(Array+high);
low++;
}
while(low<high&&*(Array+low)<=location)
{
low++;
}
if(low<high)
{
*(Array+high)=*(Array+low);
high--;
}
}
*(Array+low)=location;
return low;
}
void QuickSort(int *Array, int low,int high)
{
int base=0;
if(low<high)
{
base=Partition(Array,low,high);
QuickSort(Array,low,base-1);
QuickSort(Array,base+1,high);
}
}
int main(void)
{
int array[10]={1,3,9,0,8,9,0,6,7,1};
int i=0;
printf("排序前:\n");
for(i=0;i<10;i++)
{
printf("%d\t",array[i]);
}
QuickSort(array,0,9);
printf("快速排序后:\n");
for(i=0;i<10;i++)
{
printf("%d\t",array[i]);
}
return 0;
}
快速排序
最新推荐文章于 2025-05-20 09:34:15 发布