P0004. 排序(NOIP提交格式验证)-Keda

文章提供了一道NOIP竞赛中的排序题目,要求对输入的整数进行从小到大的排序。提供了两种解决方案,一种是使用C++的标准库函数`sort`,另一种是使用冒泡排序算法。同时强调了在NOIP比赛中需使用文件输入输出,并给出了样例输入输出以及数据范围。代码示例展示了如何处理这个问题,但警告使用高复杂度算法可能会导致超时。
摘要由CSDN通过智能技术生成

题目详情 - 排序(NOIP提交格式验证) - Keda (kedaoi.cn)

问题描述

给你 n 个整数,现在要你从小到大排序后输出

输入

第一行一个整数 n

接下来一行输入 n 个整数

输出

输出一行,为从小到大排序后的 n 个整数

样例

5
3 1 8 6 1

Copy

1 1 3 6 8

Copy

提示

数据范围与提示

70%的数据,1≤n≤2⋅10的3次方

100%的数,1≤n≤1⋅10的5次方≤n≤1⋅10的5次方,0≤ 需要排序的数 ≤500000

文件

输入文件名

sort.in

输出文件名

sort.out

注意

一定要用输入输出重定义!!!

freopen("sort.in","r",stdin);
freopen("sort.out","w",stdout);

非常重要!!!

因为这是一题NOIP系统的测试题。在比赛的时候,都会要求你使用文件输入输出,这个时候使用标准的输入输出就会因为找不到 .out 文件而判 0 分,并且请看好题,识别好文件名再写入代码(离比赛结束还有 30分钟时,监考老师也会要求你运行 checker.exe 来确认)。(转载至可达的张智闻同学,谢谢张智闻

切记切记!

代码写法

无论什么都可以,但请注意时间限制,最好不要用算法复杂度高的方法做,会超时的!

sort函数:

#include<bits/stdc++.h>
using namespace std;
int a[10000001],n;
int main(){
    freopen("sort.in","r",stdin);
    freopen("sort.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++){
        cout<<a[i]<<" "; 
    }
    return 0;
}

冒泡:

#include<bits/stdc++.h>
using namespace std;
int main(){
    freopen("sort.in","r",stdin);
    freopen("sort.out","w",stdout);
    int n,a[10001];
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++){
        for(int j=i;j<=n;j++){
            if(a[i]>a[j]) swap(a[i],a[j]);
        }
    }
    for(int i=1;i<=n;i++) cout<<a[i]<<" ";
    return 0;
}

结尾

部分内容转自可达“题解”功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值