- class QuickSort
- {
- public static void quickSort(Integer [] x, int p, int r)//排序函数
- {
- if(p<r)
- {
- int q=partition(x,p,r);
- quickSort( x, p, q-1);
- quickSort(x,q+1,r);
- }
- }
- public static int partition(Integer [] x, int p, int r)//分割函数使该角标左边元素小于该值,右边元素大于该值
- {
- int i=p,j=r+1;
- int temp=x[p];
- while(true)
- {
- while(x[++i]<temp&&i<r)
- ;
- while(--j>temp)
- ;
- if(i>=j)
- break;
- swap(x,i,j);
-
- }
- x[p]=x[j];
- x[j]=temp;
- return j;
- }
- public static void swap(Integer [] x, int i, int j)//交换数组的两个元素
- {
- int temp=x[i];
- x[i]=x[j];
- x[j]=temp;
- }
- public static void main(String[] args)
- {
- Integer []x={5,2,3,1,9,4,6,8};
- for(int i=0; i<x.length; i++)
- {
- System.out.print(x[i]+"--");
- if(i==x.length-1)
- {
- System.out.println("");
- }
-
- }
-
-
- quickSort(x,0,7);
- //swap(x,0,1);
-
- for(int i=0; i<x.length; i++)
- {
- System.out.print(x[i]+"--");
- if(i==x.length-1)
- {
- System.out.println("");
- }
- }
- }
-
- }
复制代码 |
|