问题标题: 酷町堂:3952   成绩排序

0
0
已解决
许金夫
许金夫
初级天翼
初级天翼

3952   成绩排序

题目描述 Description

某次考试后,胡老师不小心将已经排好顺序的试卷打乱了,不过由于试卷的数量很大,实际上只有很少的试卷顺序是错误的,请你选择合适的排序方法,帮助胡老师完成从小到大的排序过程。

输入描述 Input Description

第一行,一个正整数n(1≤n≤2,500,000)
第二行,n个正整数,数值在1到100之间

输出描述 Output Description

一行,从小到大排序完成的结果

样例输入 Sample Input

 

5
3 2 1 5 4

样例输出 Sample Output

 

1 2 3 4 5

40分:

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
double a[2500000];
int main(){
    long long n;
    cin>>n;
    for(long long 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
已采纳
王子健
王子健
初级天翼
初级天翼

快排会超时的,要用插入排序+优化

0
董宇昊
董宇昊
初级启示者
初级启示者

sort(a,a+n);

改成

循环(整形 i从1开始到n-1;i自增){//一共比较n-1轮 
        bool类型 f等于0;
        循环(整形 j从1到n-i;j自增){// 第i轮:比较n-i对数字 
        如果(a[j]大于a[j加1]){
            swap(a[j],a[j加1]);//交换a[j]和a[j加1]
            f等于1;
        }	
        }
        如果(f等于等于0) break;//退出循环
    }

 

董宇昊在2020-05-02 11:25:00追加了内容

董宇昊在2020-05-02 11:26:17追加了内容

打字很辛苦!

何况还有注释!!

0
0
黄子扬
黄子扬
初级天翼
初级天翼

实际上只有很少的试卷顺序是错误的

我要回答