快速排序
来源:互联网 发布:手机淘宝怎么引流 编辑:程序博客网 时间:2024/04/28 10:05
public class QuickSort {public static int[] quickSort(int array[],int _left,int _right){int left=_left;//_left为初始left下标不做变动int right=_right;//_right为初始right下标也不做变动int flag=0;//flag用来和数组中left下标和right下标的值进行比较if(left<=right){//确定初始left<rightflag=array[left];//将第一个值取出放到flag中,while(left!=right){//当左下标和右下标交叉时,一次排序完成while(left<right&&array[right]>=flag){//如果下标未交叉,且右下标的值小于flag,跳出循环,将之放入左下标位置right--;}array[left]=array[right];while(left<right&&array[left]<=flag){//如果下标未交叉,且左下标的值大于flag,跳出循环,将之放入右下标位置left++;}array[right]=array[left];}//在左右下标交叉处,将flag放入array[left]=flag;//遍历交叉左边的数组quickSort(array,_left,left-1);//遍历交叉右边的数组quickSort(array,right+1,_right);}return array;}public static void main(String[] args) {int array[]={6,9,8,5,7,4};System.out.println("排序前:");for(int i:array){System.out.print(i+" ");}int[] quickSort = quickSort(array,0,array.length-1);System.out.println("排序后:");for(int i:quickSort){System.out.print(i+" ");}}}
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 2017年10月12日训练总结
- css导航栏鼠标hover的时候就出现下拉菜单
- js实现模板在屏幕左右循环移动
- [HDU]1150 Machine Schedule 二分图 + 最小点覆盖
- JS基础总结
- 快速排序
- ORM框架简介
- JDK各个版本的区别
- 正则表达式排序
- 转载:JAVA中的反射机制
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
- 在 Hibernate 中inverse的属性
- Python Django 实现restful API
- 乐观锁配置使用