快速排序主要思想:利用分治思想,设置一个pivot,比该pivot大的数放在右边,比该pivot小数的放在左边,该pivot的位置确定,从而把数列一分为二,继续递归循环。
package Sort;
public class quicksort2 {
public static int Partition(int A[],int left,int right)
{
int pivotkey=A[right];
int temp;
int i=left-1;
for(int j=left;j<=right;j++)
{
if(A[j]<=pivotkey)
{
i++;
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
A[i]=pivotkey;
return i;
}
public void quicksort(int A[],int p,int r)
{
int q;
if(p<r)
{
q=Partition(A, p, r);
quicksort(A, p, q-1);
quicksort(A, q+1, r);
}
}
public static void main(String[] args) {
int[] arr={49,38,65,97,76,13,27 };
quicksort2 quick=new quicksort2();
quick.quicksort(arr, 0, arr.length-1);
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+",");
}
}
}