问题标题: 酷町堂:3850

0
0
已解决
宋梓涵
宋梓涵
新手光能
新手光能
#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
    int n,a[5001];
    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=n;i>=1;i--)
        cout<<a[i]<<" ";
    return 0;
}

这是神马情况???


0
已采纳
方晨顺
方晨顺
中级守护
中级守护

用桶排序,因为冒泡超时。因为有负数,就要都加上1000,输出减去1000,从大到小,倒序输出

    输入:            
  输入>>n;                   
  循环(n--)
    {
        cin>>num;
        num+=1000;
        a[num]++;//排序
    }
0
傅文彬
傅文彬
新手天翼
新手天翼

我有50分代码:将for(int i=n;i>=1;i--)cout<<a[i]<<" ";改成for(int i=1;i<=n;i++)cout<<a[i]<<" ";,将if(a[j]>a[j+1])改成if(a[j]<a[j+1])

0
0
0
桑烁
桑烁
高级光能
高级光能

数组小了,是50001,不是5001

sort就行了

我要回答