快速排序
来源:互联网 发布:wifi网络质量不佳 编辑:程序博客网 时间:2024/06/01 15:45
基本思想
1)任取待排序序列中的某个数据元素(例如:第一个元素),作为基准,按照该元素的关键字大小将整个序列划分为左右两个子序列:
- 左侧子序列中所有元素都小于或等于基准元素
- 右侧子序列中所有元素都大于基准元素
- 基准元素排在这两个子序列中间
2)分别对这两个子序列重复实施上述方法,直到所有的对象都排在相应位置上为止
int partition(int array[],int low,int high) O(n*logn){ int pv = array[low]; while(low < high) { while((low<high)&&(array[high]>=pv)) { high--; } swap(array,low,high); while((low < high)&&(array[low]<= pv)) { low++; } swap(array,low,high); } return low;}void QSort(int array[],int low,int high){ if(low < high) { int pivot = partition(array,low,high); QSort(array,low,pivot-1); QSort(array,pivot+1,high); }}void QuickSort(int array[],int len){ QSort(array,o,len-1);}
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- Caffe——Python接口学习(4):mnist实例——手写数字识别
- Nginx反向代理缓存和redis简介
- 设计模式复习(一)
- 顺序图实验记录,又懒又差劲,好懒好懒
- Ubuntu14.04安装ROS indigo
- 快速排序
- 基于位置的服务之如何找到自己的位置
- jQuery 选择器(二)
- Vue.js 学习7 事件处理器
- 两数之和
- ORA-12541: TNS: 无监听程序 解决方法
- 微服务实战(二):使用API Gateway
- 工具--Eclipse/MarkDown/XMind文章分类目录
- Listview中加入gridview发生事件冲突