【C++】不能用冒泡排序的排序

相信你是最棒哒!!!

一、例题

二、题目代码

1.注释版

2简洁版

总结


提示:以下是本篇文章正文内容,下面案例仅供参考

一、例题

题目描述

将读入的 𝑁 个数从小到大排序后输出。

输入格式

第一行为一个正整数 𝑁。

第二行包含 𝑁个空格隔开的正整数 𝑎𝑖,为你需要进行排序的数。

输出格式

将给定的 𝑁 个数从小到大输出,数之间空格隔开,行末换行且无空格。

输入输出样例

输入 

5
4 2 4 5 1

输出 

1 2 4 4 5

说明/提示

对于 20%20% 的数据,有 1≤N≤1000;

对于 100%100% 的数据,有 1≤N≤1e5,1≤ai​≤1e9。


二、题目代码

1.注释版

代码如下(示例):

#include<stdio.h> 
#include<algorithm> // 包含算法库,这里主要用于使用sort函数进行排序
using namespace std; // 使用标准命名空间,使得可以直接使用sort等算法而不需要std::前缀
const int N = 1e5; // 定义一个常量N,表示数组的最大容量,这里为10万
int a[N]; // 定义一个整型数组a,大小为N

int main() // 主函数的开始
{
    int n; // 定义一个整型变量n,用于存储输入的数组长度
    scanf("%d", &n); // 从标准输入读取一个整数,存储在变量n中
    for (int i = 0; i < n; i++) // 使用for循环读取n个整数
    {
        scanf("%d", &a[i]); // 读取一个整数并存储在数组a的第i个位置
    }
    sort(a, a + n); // 使用sort函数对数组a进行排序,范围是从a[0]到a[n-1]
    for (int i = 0; i < n; i++) // 使用for循环遍历排序后的数组a
        printf("%d ", a[i]); // 打印数组a的第i个元素,每个元素后面跟一个空格
    return 0; // 程序正常结束
}

2简洁版

代码如下(示例):

#include<stdio.h>
#include<algorithm>
using namespace std;
const int N = 1e5;
int a[N];

int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    sort(a, a + n);
    for (int i = 0; i < n; i++)
        printf("%d ", a[i]);
    return 0;
}


总结

这段代码主要涉及以下几个知识点:

  1. 头文件包含#include<algorithm>用于C++标准库中的算法,如排序。

  2. 命名空间using namespace std;使得可以直接使用标准库中的名称而不需要std::前缀。

  3. 常量定义const int N = 1e5;定义了一个常量N,表示数组的最大容量,这里为10万。(const 关键字在C和C++编程语言中用于定义常量。常量是一个固定值,在程序运行时不能被修改。使用 const 可以提高代码的可读性和可维护性,同时防止意外修改这些值。)

  4. 数组定义int a[N];定义了一个整型数组a,大小为N。( N 在这里是一个编译时常量,不是运行时的变量,因此可以用作数组的大小,不会导致编译错误。)

  5. 循环控制for循环用于读取n个整数并存入数组。

  6. 数组排序sort(a, a + n);调用C++ STL中的sort函数对数组进行排序。

  7. 输出操作printf函数用于打印排序后的数组元素。

代码展示了如何使用C/C++的基本语法和C++ STL中的算法库来处理数组和实现排序功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值