0
已解决
朱智霖
新手守护
新手守护
两道作业题都有毛病!
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int n,k,a[10000];
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++) cout<<a[i]<<' ';
return 0;
}
0
已采纳
李祈乐
新手光能
新手光能
1.数组范围定义下了,而且要比原范围大一些,
2.sort对数组排序时要将起始和末尾下标加1,即:
sort(a+1,a+n+1);
0
贾文卓
高级光能
高级光能
数组长度定义小了,应该为:
int a[100010];
贾文卓在2018-07-13 13:10:53追加了内容
你的快排调用没有问题,因为你的数组下标是从0开始的。
0
0
范孝晗
中级守护
中级守护
htrshjdthnsrhjndbdtdrk pioutrtyuiudtyhjhggbgbghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhkmmvbnmnbd
0
杨子逸
新手天翼
新手天翼
函数:
int a[120000]; void qsort(int a[],int l,int r) { int mid=a[(l+r)/2],i=l,j=r; while(i<=j) { while(a[i]<mid) i++; while(a[j]>mid) j--; if(i<=j) { swap(a[i],a[j]); i++; j--; } } if(i<r) qsort(a,i,r); if(l<j) qsort(a,l,j); }
主程序:
int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } qsort(a,1,n); for(int i=1;i<=n;i++) { cout<<a[i]<<' '; }
0
0