快速排序算法
来源:互联网 发布:钢结构公司起名 知乎 编辑:程序博客网 时间:2024/06/05 13:30
1. 首先设置两个变量i,j。分别指向序列的首尾元素。
该例子是以第一个元素为基准,从小到大进行排列。
2. 让j从后向前进行查询,直到找到第一个小于66的元素。则将最后一个j指向的数23,和i指向的66交换位置。然后将i从前向后查询,直到找到第一个大于66的元素76.将76和66位置互换。
3. 让j从后向前进行查询,直到找到第一个小于66的元素57,将57和66交换位置。
然后将i从前向后查询,直到找到第一个大于66的元素81,将81和66交换位置。
4. 让j从后向前进行查询,直到找到第一个小于66的元素26
int AdjustArray(int s[], int l, int r) //返回调整后基准数的位置{ int i = l, j = r; int x = s[l]; //s[l]即s[i]就是第一个坑 while (i < j) { // 从右向左找小于x的数来填s[i] while(i < j && s[j] >= x) j--; if(i < j) { s[i] = s[j]; //将s[j]填到s[i]中,s[j]就形成了一个新的坑 i++; } // 从左向右找大于或等于x的数来填s[j] while(i < j && s[i] < x) i++; if(i < j) { s[j] = s[i]; //将s[i]填到s[j]中,s[i]就形成了一个新的坑 j--; } } //退出时,i等于j。将x填到这个坑中。 s[i] = x; return i;}void quick_sort1(int s[], int l, int r){ if (l < r) { int i = AdjustArray(s, l, r);//先成挖坑填数法调整s[] quick_sort1(s, l, i - 1); // 递归调用 quick_sort1(s, i + 1, r); }}
1 0
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法------快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法---快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- 排序算法 快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 【排序算法】快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- cir_head_singlelink
- HTC VIVE开发教程(三)
- android developer tiny share-20160919
- Android 中的接口回调
- Oracle DBA日常工作手册
- 快速排序算法
- DataTable字符串类型的数字,按照数字类型排序
- C++ 中的 Lambda 表达式
- 9anchor
- 【基础知识思考整理】函数指针有什么用?
- Excel 插件开发
- 在 eclipse 中 配置 tomcat 服务器
- log4j2
- HDU 5889 Barricade 最短路最小割 -