写在前面:
算法部分是看的y总的算法基础课,写的不全,自己看懂就行,仅作为个人笔记使用,部分内容因篇幅太短,系统评价质量太低,推荐受影响,已设置为自己可见。

给定你一个长度为 n 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式
输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。输出格式
输出共一行,包含 n 个整数,表示排好序的数列。数据范围
1≤n≤100000
输入样例:
5
3 1 2 4 5
输出样例:
1 2 3 4 5
#include<iostream>
using namespace std;const int N = 100010;int q[N];void quick_sort(int q[], int l, int r)
{if (l >= r) return;int i = l - 1, j = r + 1, x = q[(l + r) >> 1];while (i < j){do i++; while (q[i] < x);do j--; while (q[j] > x);if (i < j) swap(q[i], q[j]);}quick_sort(q, l, j);quick_sort(q, j + 1, r);
}int main()
{int n;scanf_s("%d", &n);for (int i = 0; i < n; i++) scanf_s("%d", &q[i]);quick_sort(q, 0, n - 1);for (int i = 0; i < n; i++) printf("%d", q[i]);return 0;
}

【C++算法基础】快速排序以及边界问题相关推荐

  1. python实现快速排序算法_基础算法:快速排序(python实现)

    算法原理 快速排序是一个具有较高性能的排序算法,其主要思想如下: 对数组中的某个元素,确定其在数组中的排序位置,即在其之前的所有元素均小于该元素,在其之后的均大于该元素.对小元素组和大元素组同样执行该 ...

  2. 算法基础、算法比赛快速入门(java)

    想用Java快速入门算法?这篇文章你得看! 提示:本文章适合想要入门算法,并且想 "快速" 达到一定成果的同学们阅读~ 文章非常非常非常长(可能是你见过最长的算法基础篇章)!!! ...

  3. 算法基础知识总结(基础算法)

    算法基础知识总结 Efficient procedures for solving problems on large inputs. 一.基础算法 1.快速排序 1.类别:快速排序是一种 交换排序, ...

  4. 算法基础(ACWing)

    算法基础 基础算法 快速排序 快速排序,背一背板子. 一点心得: 快速排序不是稳定算法 快速排序时间复杂度O(nlogn),空间复杂度是O(longn)虽然没有开辟新的空间但是递归占用了栈空间. 主要 ...

  5. 算法学习---快速排序和归并排序.

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言AcWing算法学习第一节 一.排序 1.快速排序 2.归并排序 总结:这些模板一定要理解着学习,但是先理解尽力去理解, ...

  6. 前端刷题记录(边刷边学JS算法基础)

    2022.4.12(快速上手,从0到1掌握算法面试需要的数据结构) 数组篇 1.数据结构层面需要掌握数组.栈.队列.链表.二叉树 2.数组的创建 (1)方括号加元素内容直接创建   const arr ...

  7. 【Java面试高频问题】Java数据结构和算法基础知识汇总

    文章目录 Java数据结构和算法基础知识 一.Java数据结构 1. 线性结构:数组.队列.链表和栈 1.1 数组(Array) 1.2 稀疏数组 1.3 队列(Queue) 1.4 链表(Linke ...

  8. 送书 | 你一定能看懂的算法基础书(代码示例基于Python)

    本文引自图灵教育<算法图解> 你一定能看懂的算法基础书:代码示例基于Python:400多个示意图,生动介绍算法执行过程:展示不同算法在性能方面的优缺点:教会你用常见算法解决每天面临的实际 ...

  9. 【算法】快速排序与归并排序对比

    算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...

  10. 算法竞赛——快速排序

    算法竞赛--快速排序 快速排序算法和归并排序算法都可以用分治法的思想来解决,其区别是归并排序是等份左右划分,而快速排序则是按标兵进行划分,也不需要合并. 分治三步骤 划分问题:按标兵元素,将序列分成左 ...

最新文章

  1. Tensorflow—Fetch and Feed
  2. Source Insight乱码的解决方案,SI不支持UTF-8字符编码乱码
  3. MVC4实现批量更新数据
  4. Py中的类型注解【转载】
  5. verilog/VHDL实现JESD204B协议
  6. 牛客 奇怪的排序问题(单调栈/遍历)
  7. 深入浅出mybatis之入门使用
  8. 一封没有读出来的感谢信,勾勒出蔡文胜30年创业史!
  9. 使用python对微信好友进行数据分析
  10. 《倚天》中张三丰一席话引发的思考
  11. 我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,
  12. Android加速度传感器测位移,一种校核加速度传感器测位移的方法与流程
  13. 从B树谈到R树之B树的c实现
  14. html5 渐变动画效果图,html5+css3城市场景动画_觉唯设计
  15. uniapp中登录注册页面以视频为背景
  16. 西安邮电大学第五届ACM-ICPC校赛(同步赛)
  17. CSS 纵向树 横向树
  18. Linux系统如何把kali装进u盘,怎么把kalilinux系统装到u盘中
  19. Nucleic Acids Research | AlphaFold 蛋白质结构数据库
  20. 四、中英翻译、歌词、藏头诗、智能聊天

热门文章

  1. PVNet(6D姿态估计)
  2. 181007扇贝有道每日一句
  3. Unity 在windows10上资源默认下载的路径
  4. Atitit fms Strait (海峡) lst 数据列表目录1. 4大洋 12. 著名的海大约40个,总共约55个海 13. 海区列表 23.1. 、波利尼西亚(Polynesia,
  5. Atitit.研发团队与公司绩效管理的原理概论的attilax总结
  6. Atitit.android webview h5运行环境总结
  7. Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案
  8. Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net j
  9. paip.c++ cli 命令行 调用总结
  10. C# 搭建一个简单的WebApi项目