快速排序
来源:互联网 发布:数据管理员面试题 编辑:程序博客网 时间:2024/05/11 16:04
快排原理:在数组中随机取一个数,然后一次比较左右两边的数,通过操作让左边的比它小,右边的数比它大。再分别在左右两个区间重复上述操作,依次迭代,直到区间为1,或者序号不再变化。
代码转自:http://m.blog.csdn.net/MoreWindows/article/details/6684558
//快速排序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) 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); }}
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 在Windows上安装rabbitmq
- 关于OJ的时空复杂度
- 奥威房地产大数据分析软件Power-BI-集团项目情况分析
- 三张图彻底了解JDK 6和JDK 7中substring的原理及区别
- 对ES6的了解
- 快速排序
- JavaScript网页打印国际象棋棋盘
- imooc-C++远征之封装篇(上)
- Spring-boot中读取核心配置文件application和自定义properties配置文件的方式
- PHP实现多图片上传
- .net中使用outlook发送邮件
- 论文阅读-Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
- Spring项目用junit 时出现org.junit.runners.BlockJUnit4ClassRunner cannot be resolved
- 如何用AndroidStudio将代码上传至Maven仓库