快速排序java实现

来源:互联网 发布:想开一家女装淘宝店 编辑:程序博客网 时间:2024/05/17 02:45
public class QuickSort {    public static void quickSort(int[]data,int start,int end)    {        if(start==end)            return ;        int index=Partition(data,start,end);        if(index>start)            quickSort(data, start, index-1);        if(index<end)            quickSort(data, index+1, end);    }    public static int Partition(int data[],int start,int end)    {          if(data.length>0&&start>=0&&end<data.length)        {            int index=start+(int)(Math.random()*(end-start+1));            swap(data, index, end);            int small=start-1;            for(index=start;index<end;++index)            {                if(data[index]<data[end])                {                    small++;                    if(small!=index)                    {                        swap(data, small, index);                    }                }            }            ++small;            swap(data,small,end);            return small;        }        else            return -1;    }    public static void swap(int []data,int a,int b)    {        int temp=data[a];        data[a]=data[b];        data[b]=temp;        /*data[a]=data[a]^data[b];        data[b]=data[b]^data[a];        data[a]=data[a]^data[b];*/    }    public static void main(String[]args)    {        //int []test={9,8,7,6,5,4,3,2,1,0};        //int []test={1};        int []test={1,2,3,4,5,6,7,8,9};        quickSort(test, 0, test.length-1);        for(int i:test)        {            System.out.print(i+"  ");        }    }}
0 0
原创粉丝点击