c++实现快速排序
来源:互联网 发布:linux怎么创建用户密码 编辑:程序博客网 时间:2024/05/16 17:34
主体结构
void quicksort(int low, int high) { if(low < high) { int mid = partition(low, high); quicksort(low, mid-1); quicksort(mid+1, high); }}
将数组中的段再处理成: 左半边的数比pivot小,右半边的数比pivot大
处理到一半的效果是: last_small左边的数小于等于pivot, last_small到i之间的数比pivot大, i后的数未知.
遍历完成后, 将last_smalll所在的值与pivot替换就得到了需要的结果
int partition(int low, int high) { int mid = (high+low)/2; int last_small = low, pivot = array[mid]; m_swap(low, mid); for(int i = low+1; i <= high; i++) if(array[i] < pivot) { last_small++; //如果发现比pivot小的数, 将它加入到last_samll左边的那一段 m_swap(last_small, i); } m_swap(low, last_small); return last_small;}
swap函数
void m_swap(int a, int b) { int tmp = array[a]; array[a] = array[b]; array[b] = tmp;}
阅读全文
0 0
- 快速排序c实现
- 快速排序C实现
- 快速排序C实现
- 快速排序C实现
- 快速排序(C实现
- 快速排序 C语言实现
- 快速排序C语言实现
- 快速排序算法(c#)实现
- c语言实现快速排序
- C/C++实现快速排序
- C语言实现快速排序
- 快速排序实现(C语言)
- 快速排序C语言实现
- Xcode(C++) 快速排序实现
- C语言实现快速排序
- 快速排序C语言实现
- 快速排序C语言实现
- C语言实现快速排序
- 关于编程的一些好的文章
- 程序员如何用技术变现(上)
- Spring MVC框架
- java内存模型
- 为什么我们需要 集合(set)?
- c++实现快速排序
- Java的接口中是否可以使用静态方法
- protobuf c++ 接口分析
- 《数据结构》学习笔记(4)
- 数组指针和指针数组的区别
- 快速理解VirtualBox的四种网络连接方式
- 手机变成万能红外遥控器,自己动手制作教程
- 俞润东做人做事十六字箴言
- python学习笔记(四):核心模块方法