高级光能
dalao帮帮忙!
桶排写:for(int i=1;i<=n;i++){
cin>>t;
a[t]++;
}
for(int i=1;i>=100000;i++){
while(a[i]>0){
cout<<i<<" ";
a[i]--;
}
}
Runtime Error:0分
快排写:bool cmp(int a,int b){
return a>b;
}
int main(){
int n,a[101000];
cin>>n;
for(int i=0;i<=n-1;i++){
cin>>a[i];
}
sort(a+1,a+n+1,cmp);
for(int i=0;i<=n-1;i++){
cout<<a[i]<<" ";
}
样例没过!
简排写:
int a[100000],n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n-1;i++){ for(int j=1;j<=n-i;j++){ if(a[j]<a[j+1]){ swap(a[j],a[j+1]); } } } for(int i=1;i<=n;i++){ cout<<a[i]<<" "; }
Time Limit Exceeded:30分
.............
大佬帮帮忙啊!
周俊豪在2018-08-16 11:19:31追加了内容
写错了;
桶排是:for(int i=1;i<=n;i++){
cin>>t;
a[t]++;
}
for(int i=1;i<=100000;i++){
while(a[i]>0){
cout<<i<<" ";
a[i]--;
}
}
修练者
简排
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n-1;i++)
{
for(int j=i+1;j<=n;j++)
if(a[i]<a[j])
swap(a[i],a[j]);
}
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
超时30分
这题不能用桶排,数据范围太大10000000,不可以定义一个为a[10000000]的数组;
这题只能用快排来写
函数
bool cmp(long long a,long long b)
{
return a>b;
}
主函数
int main()
{
long long n,a[100001];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
}
你是从a[0]开始输入的,所以sort语句应该改为sort(a,a+n,cmp);
我是从1开始输入的,所以可以是sort(a+1,a+n+1,cmp);
望采纳,谢谢
新手光能
把 for(int i=1;i>=100000;i++)改成 for(int i=1;i>=100000;i--)。
for(int i=1;i>=100000;i++)明显是个死循环呀!
李源徽在2018-08-16 11:22:49追加了内容
for(int i=1;i>=100000;i--)改成for(int i=100000;i>=1;i--)