排序——快速排序
#include <iostream>
using namespace std;
//快速排序实现
#include "stdio.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;//i = j的时候,将x填入中间位置
quick_sort(s,l,i-1);//递归调用
quick_sort(s,i+1,r);
}
}
int main() {
// insert code here...
int a[100];
int c=0;
int i=1;
scanf("%d",&a[i]);
while(a[i]!=0)
{
//printf("%d %d\n",i,a[i]);
i++;
scanf("%d",&a[i]);
c++;
}
quick_sort(a,0,c+1);
for(int i=1;i<c;i++)
{
printf("%d ",a[i]);
}
printf("%d",c);
printf("\n");
return 0;
}