#include <stdio.h>
#include <stdlib.h>
//编写快速排序代码
//首先要传入数组,左标和右标
//小的放左边,大的放右边
//.我们需要选定一个中心点(pivot)
//2.大于中心点的数字放在中心点的左边
//3.小于中心点的数字放在中心点的右边
//4.重复上述步骤直到排序结束
void QuickSort(int a[],int l,int r)
{
if(l>=r){
return ;
}
int left = l;
int right = r;
int p = a[left];
while(left<right){
while(left < right && a[right] >= p){
right--;
}
if(left<right){
a[left]=a[right];
}
while(left<right && a[left] <= p){
left++;
}
if(left<right){
a[right] = a[left];
}
if(left>=right){
a[left]=p;
}
}
QuickSort(a,left,right-1);
QuickSort(a,right+1,right);
}
int main()
{
int n,i;
int a[66];
printf("请输入数组长度\n");
scanf("%d",&n);
printf("请输入数组元素\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
QuickSort(a,0,n-1);
printf("排完序之后\n");
for(i=0;i<n;i++){
printf("%5d",a[i]);
}
return 0;
}
快速排序C语言,处理输入输出
最新推荐文章于 2022-07-11 22:06:46 发布