2754: C++习题-快速排序
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 921 Solved: 406
[Submit][Status][Web Board]
Description
#include <iostream>
using namespace std;
void Quicksort(int a[],int low,int high)
{
if(low>=high)
{
return;
}
int first=low;
int last=high;
int key=a[first];
while(first<last)
{
///////////////////////////////////////////////////////////////////
/*
请在该部分填写缺少的代码
*/
////////////////////////////////////////////////////////////////////
}
a[first]=key;
Quicksort(a,low,first-1);
Quicksort(a,last+1,high);
}
int main()
{
int i,a[100],x,n=0;
cin>>n;
for(i=0; i<n; i++)
cin>>a[i];
Quicksort(a,0,n-1);
for(i=0; i<=n-1; i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
Input
输入n和n个整数
Output
从小到大输出
Sample Input
10
2 1 3 5 4 6 8 7 9 10
Sample Output
1 2 3 4 5 6 7 8 9 10
while(a[last]>=key&&first<last)
{
last--;
}
a[first]=a[last];
while(a[first]<=key&&first<last)
{
first++;
}
a[last]=a[first];