#include
#include
int Partition(int *Array,int i,int j)
{
int t = *(Array + i);
while(i
{
while(i=t)
j--;
if(i
{
*(Array + i) = *(Array + j);
i++;
}
while(i
i++;
if(i
{
*(Array+j) = *(Array+i);
j--;
}
}
*(Array+i) = t;
return i;
}
void QuickSort(int *Array,int low,int high)
{
int mid;
if(low
{
mid = Partition(Array,low,high);
QuickSort(Array,low,mid-1);
QuickSort(Array,mid+1,high);
}
}
int main()
{
int i,n;
int Array[255];
printf("请输入数据个数:");
scanf("%d",&n);
if(n<=0 || n>255)
{
printf("n is not correct");
exit(1);
}
printf("请输入待排序的数列: \n");
for(i =0;i
{
scanf("%d ",(Array+i));
}
printf("待排序的数列是: \n");
for(i=0;i
{
printf("%d ",*(Array+i));
}
QuickSort(Array,0,n-1);
printf("输出排序后的结果: \n");
for(i=0;i
printf("%d ",*(Array+i));
printf("\n");
return 0;
}
结果图:
请输入数据个数:4
请输入待排序的数列:
4
3
2
1
待排序的数列是:
4 3 2 1 输出排序后的结果:
1 2 3 4