排序 快排算法
题目描述 Description给出n和n个整数,希望你从小到大给他们排序
输入描述 Input Description
第一行一个正整数n
第二行n个用空格隔开的整数
输出描述 Output Description
输出仅一行,从小到大输出n个用空格隔开的整数
以下是我的代码:
#include <iostream>
using namespace std;
int a[10000];
void qwe(int first,int last);
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
qwe(1,n);
for(int j=1;j<=n;j++){
cout<<a[j]<<" ";
}
return 0;
}
void qwe(int first,int last){
int left=first;
int right=last;
int key=a[left];
if(first>=last){
return;
}
while(first<last){
while(a[last]>=key and first<last){
last --;
}
a[first]=a[last];
while(a[first]<=key and first<last){
first++;
}
a[last]=a[first];
}
a[last]=key;
qwe(left,key-1);
qwe(key+1,right);
}
为啥我输入 12
1 23 56 78 34 1 8 89 43 42 23 7
它不给我输出任何东西?