Java简易快排

来源:互联网 发布:如何购买域名 编辑:程序博客网 时间:2024/05/12 11:10

今天复习Java基础又看到了自己喜欢的快排部分,觉得代码很好,分享给大家。


public class QuickSort {    private static void swap(int [] number,int i,int j)    {        int t;        t=number[i];        number[i]=number[j];        number[j]=t;    }    private static void quicksort(int[] number,int left,int right)    {        if(left<right)        {            int s=number[left];            int i=left;            int j=right+1;            while(true)            {                //向右找大于s的数的索引                while(i+1<number.length&&number[++i]<s);                //向左找小于s的数的索引                while(j-1>-1&&number[--j]>s);                //如果i>=j,退出循环                if(i>=j)                {                    break;                }                swap(number,i,j);            }            number[left]=number[j];            number[j]=s;            //对左边进行递归            quicksort(number, left, j-1);            //对右边进行递归            quicksort(number,j+1,right);        }    }    /**     * @param args     */    public static void main(String[] args) {        int[]num={34,1,23,345,12,546,131,54,78};        quicksort(num,0,num.length-1);        for (int i = 0; i < num.length; i++) {            System.out.println(num[i]);        }    }}
0 0
原创粉丝点击