目标算法:快速排序
应用范围:排序
算法代码:
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 5005;
void quicksort(int l,int r,int Array[])
{
int i = l;
int j = r;
int s = Array[l]; //最左边的数赋给s
if(l < r)
{
while(i < j)
{
while(i<j && Array[j]>=s)
j--; //从右向左找第一个比s小的数
if(i < j)
Array[i++] = Array[j]; //赋值
while(i<j && Array[i]<=s)
i++; //从左到右找第一个比s大的数
if(i < j)
Array[j--] = Array[i]; //赋值
}
Array[i] = s;
quicksort(l,i-1,Array);
quicksort(i+1,r,Array);
}
}
int main()
{
int n;
int Array[maxn];
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
scanf("%d",&Array[i]);
quicksort(0,n-1,Array);
for(int i=0;i<n;i++)
printf("%d ",Array[i]);
printf("\n");
}
}