下面是实现代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void quick_sort(int s[], int l, int r)
{
if(l<r)
{
int i = l, j = r, x = s[l];
while (i < j)
{
while(i<j && s[j]>=x) // 从右向左找第一个小于x的数
j--;
if(i < j)
s[i++] = s[j];
while(i<j && s[i]<x) // 从左向右找第一个大于等于x的数
i++;
if(i<j)
s[j--] = s[i];
}
s[i] = x;
quick_sort(s,l,i-1); // 递归调用
quick_sort(s,i+1,r);
}
}
int main(){
int i,n,li[10];
printf("输入排序数个数\n");
scanf("%d",&n);
printf("输入要排序的数\n");
for(i=0;i<n;i++){
scanf("%d",&li[i]);
}
quick_sort(li,0,n-1);
printf("排序后结果为\n");
for(i=0;i<n;i++){
printf("%d ",li[i]);
}
return 0;
}
下面的运行结果