首页 > 编程语言 > 详细

快速排序

时间:2017-08-19 22:01:14      阅读:279      评论:0      收藏:0      [点我收藏+]
import java.util.Arrays;

public class QuickSort {
    public static void main(String[] args) {
        int[] a={4,3,2,5,8,6};
        sort(a, 0, 5);
        System.out.println(Arrays.toString(a));
    }
    public static int partition(int []array,int low,int high){
        //固定的切分方式
        int key=array[low];
        while(low<high){
            while(array[high]>=key&&high>low){//从后半部分向前扫描
                high--;
            }
            array[low]=array[high];
            while(array[low]<=key&&high>low){//{从前半部分向后扫描
                low++;
            }
            array[high]=array[low];
        }
        array[high]=key;
        return high;
    }
    
    public static void sort(int[] array,int low ,int high){
        if(low>=high){
            return ;
        }
        int index=partition(array,low,high);
        sort(array,low,index-1);
        sort(array,index+1,high); 
    }
}

 [2, 3, 4, 5, 6, 8]

快速排序

原文:http://www.cnblogs.com/tonggc1668/p/7397904.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!