快速排序
来源:互联网 发布:手机看本子的软件 编辑:程序博客网 时间:2024/06/03 20:23
1.基本思想
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2.单趟排序分析
我这里用的是左右指针的方法,下面具体的步骤以及代码的实现
代码实现:
int PortSort(int* arr, int begin, int end)//左右指针法{ assert(arr); int left = begin; int right = end; int mid = SelectMid(arr, begin, end); swap(arr[mid], arr[end]); int key = arr[end];//基准值 while (left < right) { while (left < right && arr[left] <= key) { left++; } while (left < right && arr[right] >= key) { right--; } if (arr[left] > arr[right]) { swap(arr[left], arr[right]); } } //把key放进去 swap(arr[left], arr[end]); return left;}
3.快速排序的实现
void QuickSort(int* arr, int begin, int end){ assert(arr); if (begin < end) { int div = PortSort(arr, begin, end); QuickSort(arr, begin, div - 1); QuickSort(arr, div + 1, end); }}
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 他是CEO,他分享了这5条工作经验
- HBase thrift2 TIOError
- php 几种排序算法
- 冒泡排序
- 内存管理_零碎记录
- 快速排序
- webrtc视频采集模块
- 总结string-escape和unicode-escape
- Python希尔排序算法
- 试用Embarcadero® RAD Studio 10.2
- 【Spring】普通bean、FactoryBean、BeanFactory的区别与联系
- hdu1224—Free DIY Tour(Bellman_Ford)
- 《UNIX网络编程 卷1》 笔记: 非阻塞式I/O
- OpenGL 入门基础教程 —— 基本术语篇【1】