快速排序の正确姿势
来源:互联网 发布:rf 910编程器驱动程序 编辑:程序博客网 时间:2024/06/05 03:21
废话不多说,直接上代码。对照代码自行理解其实比别人灌输更好。
void quick_sort(int s[], int l, int r) { if (l < r) { //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1 int i = l, j = r, x = s[l]; while (i < j) { while(i < j && s[j] >= x) // 从右向左找第一个小于x的数 j--; if(i < j) //从右面找到了小于x的数,将其放在左边的坑中。左边坑中的数已提前取出放在x,防覆盖 s[i++] = s[j]; while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数 i++; if(i < j) s[j--] = s[i]; } s[i] = x; quick_sort(s, l, i - 1); // 递归调用 quick_sort(s, i + 1, r); } }
注释1:如果进行了交换,那么基准数是中间的数。其实就是先去找中间的数据的正确位置.
0 0
- 快速排序の正确姿势
- 搜索的正确姿势
- shape使用正确姿势
- 读开源库的正确姿势
- 使用XcodeColors正确姿势
- Dagger2 使用正确姿势。
- 跑步的正确姿势
- 跑步的正确姿势
- 正确的关机姿势
- CORS正确使用姿势
- ImageView 正确使用姿势
- 正确的科研姿势
- 黑马程序员:论快速排序的实现姿势
- java 快速排序非递归正确版
- 电脑前的正确姿势
- 二分查找的正确姿势
- 集成sdk的正确姿势
- Fragment使用的正确姿势
- Sum All Odd Fibonacci Numbers
- MXNET Params for ImageNet
- Ubuntu14.04 64位+Python3.4环境下安装Opencv3.0的方法
- 蓝桥省赛训练1->2016年第七届蓝桥杯省赛
- CodeForces-723B(记录一下自己的失误。。。)
- 快速排序の正确姿势
- jQuery的ajax详解
- 最大上升子序列和
- 解析波士顿动力Handle机器人背后的技术(附PPT+视频)
- 从1到n整数中1出现的次数
- MySQL的初次见面礼基础实战篇
- 平衡二叉树学习小节
- 创建型模式-抽象工厂模式(abstract_factory)
- 消息队列之ActiveMQ