八大排序算法之快速排序
来源:互联网 发布:雪梨有几个淘宝店铺 编辑:程序博客网 时间:2024/05/17 22:12
/** * Created by leixingbang on 2017/9/7. * 快排最主要思想是分治思想: * (1)找出基线条件 * (2)不断拆分,缩小问题规模,使其满足基线条件 * 对快排来说 * (1)基线条件:空数组或者只有一个元素的数组 * (2)将大的数组拆分为两个满足条件的小数数组+基准值:左侧小于基准值的子数组+基准值+右侧大于基准值的子数组 * (3)递归拆分子数组,使其满足条件 */public class MyQuickSort2 { public static int getMiddleIndex(int []array,int i,int j) { int middle=array[i];//任选一个元素作为基准值,这里选择第一个元素作为基准条件 while (i<j) { while(i<j) { //从右向左找到比基准条件小的数字,并将其位置与middle所在的位置进行狡猾 if(array[j]>=middle) j--; else { //找到该位置 array[i] = array[j]; break; } } while (i<j) { //从左向右找到比基准条件大的数字 if(array[i]<=middle) i++; else { array[j]=array[i]; break; } } } array[i]=middle; return i; } public static void sort(int []array,int low,int high) { //low<high用于控制边界条件,假如只有1个元素,则low=high=0 //加入只有两个元素,则调用getMidlldleIndex后,相当于对调,再次sort进入只有一个元素状态。 if(low<high) { int index = getMiddleIndex(array, low, high); sort(array, low, index - 1); sort(array, index + 1, high); } } public static void main(String[] args) { int []array={5,3,6,1,2}; // getMiddleIndex(array,0,array.length-1); sort(array,0,array.length-1); for(int i=0;i<array.length;i++) { System.out.print(array[i]+","); } }}
阅读全文
0 0
- 八大排序算法之快速排序
- 八大排序算法之快速排序法
- 八大排序算法之快速排序
- 八大排序算法之快速排序
- 八大排序算法之快速排序
- 八大排序算法之快速排序
- 八大排序算法-快速排序
- 八大排序之快速排序
- 八大排序之--快速排序
- 八大排序算法 之 快速排序(填坑法)
- 八大排序算法之-快速排序 java代码
- 八大排序之快速排序算法-python实现
- 八大排序之快速排序算法-python实现
- 八大排序--交换排序 之 快速排序
- 八大排序算法(六)快速排序
- 八大排序算法(六) 快速排序
- 排序算法之八大算法
- 八大排序学习之六快速排序
- Activity生命周期再探
- 问题:rally create-verifier failed
- 为什么要对网站进行关键词的研究
- python闭包和装饰器
- iOS11设置automaticallyAdjustsScrollViewInsets失效
- 八大排序算法之快速排序
- Spring Boot的启动器Starter详解
- ssh免密码登录
- unrecognized selector sent to class 问题解决
- PHP各版本迭代
- 修改静态地址后发现无法ping外网
- GKStrategist
- BOM操作
- Thread和Runnable的区别