洛谷笔记 - P1177 【模板】快速排序
复健 ing…
快速排序是 C.R.A.Hoare 于 1962 年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法 (Divide-and-ConquerMethod)。
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
—— 菜鸟教程
题目描述
利用快速排序算法将读入的 个数从小到大排序后输出。
快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++ 选手请不要试图使用 STL
,虽然你可以使用 sort
一遍过,但是你并没有掌握快速排序算法的精髓。)
输入格式
第 行为一个正整数 ,第 行包含 个空格隔开的正整数 ,为你需要进行排序的数,数据保证了 不超过 。
输出格式
将给定的 个数从小到大输出,数之间空格隔开,行末换行且无空格。
样例 #1
样例输入 #1
1 | 5 |
样例输出 #1
1 | 1 2 4 4 5 |
提示
对于 的数据,有 ;
对于 的数据,有 。
代码
1 | //P1177 【模板】快速排序 |