数据结构&算法学习笔记: 快速排序
2018-02-22 11:20
555 查看
时间复杂度:
最坏:O(n^2)
平均: O(nlogn)
如果L[0]上面有数字(不闲置),稍微改动一下就可以了
最坏:O(n^2)
平均: O(nlogn)
int Partition(int L[], int low, int high)//对子表进行一趟排序,返回枢轴位置 {//L[0]闲置或用作哨兵单元 L[0] = L[low]; int pivotkey = L[low]; while(low < high) { while(low < high && L[high] >= pivotkey) --high; L[low] = L[high]; while(low < high && L[low] <= pivotkey) ++low; L[high] = L[low]; } L[low] = L[0]; return low; } void Qsort(int L[], int low, int high) {//L[0]闲置,调用前置初值 low = 1, high = L的length; if(low < high) { int pivotloc = Partition(L, low ,high);//pivotloc是枢轴位置 Qsort(L, low, pivotloc - 1); Qsort(L, pivotloc + 1, high); } }
如果L[0]上面有数字(不闲置),稍微改动一下就可以了
int Patition(int L[], int low, int high) { int temp = L[low]; while(low < high) { int pivotkey = L[low]; while(low < high && L[high] >= pivotkey)high--; L[low] = L[high]; while(low < high && L[low] <= pivotkey)low++; L[high] = L[low]; } L[low] = temp; return low; } void Qsort(int L[], int low, int high) {//调用前置low = 0, high = L.length - 1 if(low < high) { int pivotloc = Patition(L, low, high); Qsort(L, low, pivotloc - 1); Qsort(L, pivotloc + 1, high); } }
相关文章推荐
- 算法第四版学习笔记之快速排序 QuickSort
- python数据结构学习笔记-2016-11-24-01-快速排序
- 算法学习笔记之快速排序
- OC学习之道:数据结构中几种常见的排序算法:选择排序,插入排序.快速排序
- 数据结构&算法学习笔记: 归并排序
- 黑马程序员之数据结构学习笔记:快速排序
- 数据结构学习笔记3.2—快速排序
- 算法学习笔记--排序之快速排序
- 基础算法学习笔记—快速排序
- 8大内部排序算法学习笔记--(2)快速排序 Java实现
- 数据结构&算法学习笔记: 快速幂&矩阵快速幂
- 学习笔记之快速排序——quicklySort——基础算法——java
- 数据结构 学习笔记(十一):排序(下):快速 / 表 / 桶 / 基数 排序,排序算法的比较
- 数据结构学习笔记一:简单排序与查询算法
- 8大内部排序算法学习笔记--(3)选择排序java实现
- 数据结构学习笔记0——算法分析
- 数据结构与算法学习笔记
- 数据结构学习笔记 --- 排序(归并排序、基数排序)
- 数据结构与算法学习笔记之 复杂度分析
- 数据结构学习笔记 --- 排序(归并排序、基数排序)