Java简易快排

今天复习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]);
        }

    }

}

你可能感兴趣的:(java)