1265 蓝桥杯 排序 简单

1265 蓝桥杯 排序 简单 

//C++风格解法1,sort正序排序,正、逆序分别输出,通过率100%
#include <bits/stdc++.h>
using namespace std;

const int N = 5e5 + 10;
int a[N];

int main(){
  int n;cin >> n;
  for(int i = 1; i <= n; ++i)cin >> a[i];

  sort(a + 1, a + 1 + n);    //快速排序平均时间复杂度O(nlogn),范围左闭右开

  for(int i = 1; i <= n; ++i)cout << a[i] << " \n"[i == n]; 
  //" \n"[i == n] i != n时输出空格,否则输出换行符

  for(int i = n; i >= 1; --i)cout << a[i] << " \n"[i == 1];
  // " \n"[i == 1] 判断是否为最后一个元素,是换行,否空格
  return 0;
}
//C++风格解法2,lambda表达式,正序快排,逆序快排,通过率100%
#include <bits/stdc++.h>
using namespace std;

const int N = 5e5 + 10;
int a[N];

int main(){
  int n;cin >> n;
  for(int i = 1; i <= n; ++i)cin >> a[i];

  sort(a + 1, a + 1 + n);

  for(int i = 1; i <= n; ++i)cout << a[i] << " \n"[i == n];
  
  sort(a + 1, a + 1 + n, [](const int &u, const int &v){return u > v;});
  //sort(a + 1, a + 1 + n, cmp) lambda表达式写法
  for(int i = 1; i <= n; ++i)cout << a[i] << " \n"[i == n];
  
  return 0;
}

Lambda表达式可以嵌套使用,ISO C++14支持基于类型推断的泛型lambda表达式:

sort( a, a+n, [](const auto& a,const auto& b){return a>b;} );//降序排序:不依赖a和b的具体类型
捕捉形式:[] 不捕获任何外部变量

auto:变量的自动类型推断

//C++风格解法3,自定义函数编写排序规则,通过率100%
#include <bits/stdc++.h>
using namespace std;

const int N = 5e5 + 10;
int a[N];

bool cmp(const int &u, const int &v){return u > v;}    
//函数体写在{}里,自定义函数编写排序规则

int main(){
  int n;cin >> n;
  for(int i = 1; i <= n; ++i)cin >> a[i];

  sort(a + 1, a + 1 + n);

  for(int i = 1; i <= n; ++i)cout << a[i] << " ";
  cout << "\n";
  
  sort(a + 1, a + 1 + n,cmp);

  for(int i = 1; i <= n; ++i)cout << a[i] << " \n"[i == n];
  
  return 0;
}

reference:

sort入门_sort(a+1,a+n+1)-CSDN博客

八大排序算法的稳定性和事件复杂度 - tuna- - 博客园 (cnblogs.com)

c++中cout << a[i] << " \n"[i == n - 1];该怎么解释 - CSDN文库

cout <<“\n"[i == n- 1];是如何工作的?-腾讯云开发者社区-腾讯云 (tencent.com)

lambda 表达式——匿名函数 auto i= [ ] () { };_lamda表达式auto-CSDN博客
C++14 Overview, C++ FAQ (isocpp.org)
C++ auto用法及应用详解_c++ auto&-CSDN博客

函数 - C 语言教程 - 网道 (wangdoc.com)

c++应用sort函数时的cmp函数怎么写_c语言中cmp-CSDN博客

相关推荐

  1. -快速排序

    2024-01-04 13:54:01       50 阅读
  2. 对称排序

    2024-01-04 13:54:01       36 阅读
  3. 简介

    2024-01-04 13:54:01       54 阅读
  4. 图形排版

    2024-01-04 13:54:01       45 阅读
  5. 2022数位排序

    2024-01-04 13:54:01       67 阅读
  6. 快速排序板子(备战

    2024-01-04 13:54:01       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-04 13:54:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-04 13:54:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-04 13:54:01       82 阅读
  4. Python语言-面向对象

    2024-01-04 13:54:01       91 阅读

热门阅读

  1. 安全防御之身份鉴别技术

    2024-01-04 13:54:01       55 阅读
  2. 修改 Ubuntu 的配置

    2024-01-04 13:54:01       59 阅读
  3. Graphical Integtrity;lie factor;data-ink ratio

    2024-01-04 13:54:01       59 阅读
  4. nodejs中ffcreator启动

    2024-01-04 13:54:01       53 阅读
  5. Android 13 - Media框架(30)- MediaCodec(五)

    2024-01-04 13:54:01       58 阅读
  6. Redis

    Redis

    2024-01-04 13:54:01      60 阅读
  7. 向爬虫而生---Redis 拓宽篇1 < pipeline传输效率>

    2024-01-04 13:54:01       64 阅读
  8. 《微信小程序开发从入门到实战》学习七十一

    2024-01-04 13:54:01       59 阅读