C++打卡20-【排序模板】快速排序
输入nn个整数,用快速排序算法将这nn个数从小到大进行排序。n \leq 1000n≤1000.
请手写函数,切勿使用库函数。
输入格式
第一行,输入整数nn. 第二行,输入这nn个整数
输出格式
一行,按从小到大输出这nn个数
输入样例
10
2 3 4 1 3 6 7 4 9 8
输出样例
1 2 3 3 4 4 6 7 8 9
代码模板:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
int q[N];
int 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(){
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &q[i]);
quick_sort(q,0,n-1);
for( int i = 0; i < n; i++) printf("%d ",q[i]);
return 0;
}
如果你想看更多C++原创文章,关注一下吧!
C++打卡20-【排序模板】快速排序相关推荐
- C++打卡19-【排序模板】归并排序
题目描述 输入nn个整数,用归并排序算法将这nn个数从小到大进行排序.n \leq 1000n≤1000. 输入格式 第一行,输入整数nn. 第二行,输入这nn个整数 输出格式 一行,按从小到大输出这 ...
- C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序
常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...
- 算法---排序--希尔排序和快速排序
冒泡.选择.插入排序算法是三种简单的排序算法,它们的时间复杂度大O表示法都是O(N2),如果数据量少,我们还能忍受,但是数据量大,那么这三种简单的排序所需要的时间则是我们所不能接受的.接着我们在讲解递 ...
- (排序5)快速排序(Hoare,选key的随机数与三数取中优化,挖坑法与前后指针法等)
快速排序 (Hoare大佬版本) 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左 ...
- 数据结构与算法 第八天常见排序+冒泡排序+快速排序+文件IO+大数据排序+文件合并
数据结构与算法 第八天常见排序+冒泡排序+快速排序+文件IO+大数据排序+文件合并 第一章 冒泡排序 [1]Bubble_Sort.c 第二章 快速排序 [1]quick_sort.c 第三章 大数据 ...
- 数据结构第16周 :( 希尔排序+ 堆排序 + 快速排序 )
目录 希尔排序 堆排序 快速排序 希尔排序 [问题描述]给出一组数据,请用希尔排序将其按照从小到大的顺序排列好. [输入形式]原始数据,以0作为输入的结束:第二行是增量的值,都只有3个. [输出形式] ...
- 简易的选择排序与快速排序
选择排序的思路非常简单,就是依次从头到尾挑选合适的元素放到前面.如果总共有n个节点,那么选择一个合适的节点需要比较n次,而总共要选择n次,因此总的时间复杂度是O(n2). 选择排序的思路是,假设有一个 ...
- 排序算法 | 快速排序,算法的图解、实现、复杂度和稳定性分析与优化
今天讲解一下快速排序算法的原理以及实现.复杂度和稳定性分析与优化 目录 1 快速排序的原理 2 快速排序代码实现 3 复杂度和稳定性分析.优化 4 习题练习 1 快速排序的原理 快速排序是所有内部排序 ...
- 9个元素换6次达到排序序列_(算法四)高级排序(快速排序)
1.快速排序 快速排序是对冒泡排序的一种改进.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速 ...
最新文章
- 第一章 基础设施,1.3 阿里视频云ApsaraVideo是怎样让4000万人同时狂欢的(作者:蔡华)...
- ABAP门派现状报告
- 事件通知方式实现的重叠I/O模型
- 2021 腾讯技术十大热门文章
- 当代年轻人的“快乐秘籍”—— Z时代营销攻略
- 如何构建JavaScript警报框或弹出窗口
- 雷军宣布:启动小米成立以来最大组织架构变革(附内部邮件原文)
- “项目运行时出错,无法启动调试。绑定句柄无效”的解决办法
- PHP Primary script unknown 终极解决方法
- python代码实例-python程序实例
- linux c程序hello,Linux下实现c语言hello world 步骤
- yii2 表单提交没有对应的路由参数解决办法
- iPhone长截图快捷指令(科技兽修改版)
- 检测运行程序,强制电脑关机代码
- 历代iPad主要参数对比,更新于2021年09月
- 记录一次 CPU sy 过高的排查经历
- js获取浏览器默认语言设置并自动跳转
- Android Camera之Deferred Surface
- HTML+CSS ---- 背景图片
- 连接无线路由器显示windows找不到证书来登录无线网络