【C++算法基础】快速排序以及边界问题
写在前面:
算法部分是看的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++算法基础】快速排序以及边界问题相关推荐
- python实现快速排序算法_基础算法:快速排序(python实现)
算法原理 快速排序是一个具有较高性能的排序算法,其主要思想如下: 对数组中的某个元素,确定其在数组中的排序位置,即在其之前的所有元素均小于该元素,在其之后的均大于该元素.对小元素组和大元素组同样执行该 ...
- 算法基础、算法比赛快速入门(java)
想用Java快速入门算法?这篇文章你得看! 提示:本文章适合想要入门算法,并且想 "快速" 达到一定成果的同学们阅读~ 文章非常非常非常长(可能是你见过最长的算法基础篇章)!!! ...
- 算法基础知识总结(基础算法)
算法基础知识总结 Efficient procedures for solving problems on large inputs. 一.基础算法 1.快速排序 1.类别:快速排序是一种 交换排序, ...
- 算法基础(ACWing)
算法基础 基础算法 快速排序 快速排序,背一背板子. 一点心得: 快速排序不是稳定算法 快速排序时间复杂度O(nlogn),空间复杂度是O(longn)虽然没有开辟新的空间但是递归占用了栈空间. 主要 ...
- 算法学习---快速排序和归并排序.
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言AcWing算法学习第一节 一.排序 1.快速排序 2.归并排序 总结:这些模板一定要理解着学习,但是先理解尽力去理解, ...
- 前端刷题记录(边刷边学JS算法基础)
2022.4.12(快速上手,从0到1掌握算法面试需要的数据结构) 数组篇 1.数据结构层面需要掌握数组.栈.队列.链表.二叉树 2.数组的创建 (1)方括号加元素内容直接创建 const arr ...
- 【Java面试高频问题】Java数据结构和算法基础知识汇总
文章目录 Java数据结构和算法基础知识 一.Java数据结构 1. 线性结构:数组.队列.链表和栈 1.1 数组(Array) 1.2 稀疏数组 1.3 队列(Queue) 1.4 链表(Linke ...
- 送书 | 你一定能看懂的算法基础书(代码示例基于Python)
本文引自图灵教育<算法图解> 你一定能看懂的算法基础书:代码示例基于Python:400多个示意图,生动介绍算法执行过程:展示不同算法在性能方面的优缺点:教会你用常见算法解决每天面临的实际 ...
- 【算法】快速排序与归并排序对比
算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...
- 算法竞赛——快速排序
算法竞赛--快速排序 快速排序算法和归并排序算法都可以用分治法的思想来解决,其区别是归并排序是等份左右划分,而快速排序则是按标兵进行划分,也不需要合并. 分治三步骤 划分问题:按标兵元素,将序列分成左 ...
最新文章
- Tensorflow—Fetch and Feed
- Source Insight乱码的解决方案,SI不支持UTF-8字符编码乱码
- MVC4实现批量更新数据
- Py中的类型注解【转载】
- verilog/VHDL实现JESD204B协议
- 牛客 奇怪的排序问题(单调栈/遍历)
- 深入浅出mybatis之入门使用
- 一封没有读出来的感谢信,勾勒出蔡文胜30年创业史!
- 使用python对微信好友进行数据分析
- 《倚天》中张三丰一席话引发的思考
- 我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,
- Android加速度传感器测位移,一种校核加速度传感器测位移的方法与流程
- 从B树谈到R树之B树的c实现
- html5 渐变动画效果图,html5+css3城市场景动画_觉唯设计
- uniapp中登录注册页面以视频为背景
- 西安邮电大学第五届ACM-ICPC校赛(同步赛)
- CSS 纵向树 横向树
- Linux系统如何把kali装进u盘,怎么把kalilinux系统装到u盘中
- Nucleic Acids Research | AlphaFold 蛋白质结构数据库
- 四、中英翻译、歌词、藏头诗、智能聊天
热门文章
- PVNet(6D姿态估计)
- 181007扇贝有道每日一句
- Unity 在windows10上资源默认下载的路径
- Atitit fms Strait (海峡) lst 数据列表目录1. 4大洋 12. 著名的海大约40个,总共约55个海 13. 海区列表 23.1. 、波利尼西亚(Polynesia,
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
- Atitit.android webview h5运行环境总结
- Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案
- Atitit. servlet 与 IHttpHandler ashx listen 和HttpModule的区别与联系 原理理论 架构设计 实现机制 java php c#.net j
- paip.c++ cli 命令行 调用总结
- C# 搭建一个简单的WebApi项目