快速排序
来源:互联网 发布:淘宝新店铺怎么刷信誉 编辑:程序博客网 时间:2024/05/18 00:46
1.原理:
Divide: 随便选一个数作为基准数,把数组分成两个子列
Conquer: 分别两个子列进行排序
2.代码:
void quick_sort(int s[],int l,int r) { if(l < r) { 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
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- POJ-1350
- 用C++写个方法,打印输入文件的最后K行
- codeforces 479C Exams 排序贪心
- struts2中Action的name 和package的name和namespace是什么作用
- JSON解析
- 快速排序
- spark单机搭建
- LINQ 作为Rdlc报表的数据源
- 谓词
- 数据库备份恢复时出现“无法处理,因为正由此会话使用”
- Http协议
- android studio初体验
- UIKit框架类之窗口和视图架构介绍
- 条款22 将成员变量为private