#include<stdio.h>
int a[101],n; //定义全局变量,在子函数中使用
void quicksort(int left,int right)
{
int i,j,t,temp;
if(left>right)
return ;
temp = a[left]; //temp存放基准数
i = left;
j = right;
while(i!=j)
{
while(a[j]>=temp && i<j) //先从右往左找
{
j--;
}
while(a[i]<=temp && i<j) //后从左往右找
{
i++;
}
if(i<j) //跳出两个循环后,开始交换两个数的位置
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
} //最后基数归位
a[left] = a[i];
a[i] = temp;
quicksort(left,i-1); //继续处理左边的数
quicksort(i+1,right); //继续处理右边的数
}
int main()
{
int i,j,t;
scanf("%d",&n); //输入要排列数的个数
for(i=1;i<=n;i++) //循环读入要排列的数
scanf("%d",&a[i]);
quicksort(1,n);
printf("---------------------快速排序后-----------------\n");
for(i=1;i<=n;i++)
printf("%d",a[i]);
getchar();getchar();
return 0;
}
四十七.快速排序C语言实现
最新推荐文章于 2024-04-06 19:03:21 发布