剑指offer 快速排序
来源:互联网 发布:家族信托 知乎 编辑:程序博客网 时间:2024/03/29 12:52
void swap(int* a,int* b){int tmp=a;a=b;b=tmp;}//在给定的[start,end]区间内随机取一个值,分成大于它和小于它的两拨//返回选定值在分完拨之后的下标 int partition(int data[],int len,int start,int end){if(data==NULL||len<=0||start<0||end>len)throw exception("invalid parameter.");//随机取一个区间内值,并将其换到区间最末尾 int index=Random(start,end);swap(&data[index],&data[end]);int small=start-1;for(i=start;i<end;++i){if(data[i]<data[end]){//small++后代表大于选定值的第一个数的下标//如果不存在大于选定值的数字则代表当前比较的数字下标 ++small; if(small<i){//交换后small代表小于选定值的最后一个数字的下标 swap(&data[small],&data[i])}}}//small++后代表大于选定值的第一个数的下标++small;swap(&data[small],&data[end]);return small;}void QuickSort(int data[],int len,int start,int end){//递归结束条件if(start==end) return;int index=partition(data,len,start,end);if(index>start){QuickSort(data,len,start,index-1);}if(index<end){QuickSort(data,len,index+1,end);}}
0 0
- 【剑指offer】快速排序
- 剑指offer--快速排序
- 剑指offer 快速排序
- 剑指offer 快速排序
- 剑指offer 快速排序
- 快速排序-剑指offer
- 剑指offer-快速排序
- 剑指Offer系列---(10)快速排序
- 剑指offer——快速排序
- 【剑指 offer】—— 快速排序
- 剑指Offer——快速排序
- 剑指offer--快速排序变形(5、29)
- 剑指offer—第二章算法之快速排序
- 剑指offer--快速排序递归实现,年龄排序O(N)实现,旋转数组最小值查找
- 剑指offer 归并排序
- 归并排序-剑指offer
- 堆排序-剑指offer
- 剑指offer-排序算法
- 加快Android SDK Manager的速度
- 13、内部温度传感器
- MultipartEntity与UrlEncodedFormEntity区别
- 全栈工程师到底有什么用
- JS对数据分页的封装方法
- 剑指offer 快速排序
- 个人博客寻友情链接
- Gulp入门教程
- 《飞机大战》安卓游戏开发源码(一)
- 《飞机大战》安卓游戏开发源码(二)
- 《飞机大战》安卓游戏开发源码(三)
- linux打包工具tar及一些压缩工具
- sts Spring tool suite中更改tomcat的默认发布目录
- 《飞机大战》安卓游戏开发源码(四)