如何用JAVA实现快速排序算法?

Python014

如何用JAVA实现快速排序算法?,第1张

本人特地给你编的代码\x0d\x0a亲测\x0d\x0a\x0d\x0apublicclassQuickSort{\x0d\x0a\x0d\x0apublicstaticintPartition(inta[],intp,intr){\x0d\x0aintx=a[r-1]\x0d\x0ainti=p-1\x0d\x0ainttemp\x0d\x0afor(intj=pjif(a[j-1]//swap(a[j-1],a[i-1])\x0d\x0ai++\x0d\x0atemp=a[j-1]\x0d\x0aa[j-1]=a[i-1]\x0d\x0aa[i-1]=temp\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a//swap(a[r-1,a[i+1-1])\x0d\x0atemp=a[r-1]\x0d\x0aa[r-1]=a[i+1-1]\x0d\x0aa[i+1-1]=temp\x0d\x0a\x0d\x0areturni+1\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublicstaticvoidQuickSort(inta[],intp,intr){\x0d\x0a\x0d\x0aif(p

本人特地给你编的代码

亲测

public class QuickSort {

public static int Partition(int a[],int p,int r){

int x=a[r-1]

int i=p-1

int temp

for(int j=pj<=r-1j++){

if(a[j-1]<=x){

// swap(a[j-1],a[i-1])

i++

temp=a[j-1]

a[j-1]=a[i-1]

a[i-1]=temp

}

}

//swap(a[r-1,a[i+1-1])

temp=a[r-1]

a[r-1]=a[i+1-1]

a[i+1-1]=temp

return i+1

}

public static void QuickSort(int a[],int p,int r){

if(p<r){

int q=Partition(a,p,r)

QuickSort(a,p,q-1)

QuickSort(a,q+1,r)

}

}

public static void main(String[] stra){

int a[]={23,53,77,36,84,76,93,13,45,23}

QuickSort(a,1,10)

for (int i=1i<=10i++)

System.out.println(a[i-1])

}

}

快速排序法:快速排序法号称是目前最优秀的算法之一,实现思路是,将一个数组的排序问题看成是两个小数组的排序问题,而每个小的数组又可以继续看成更小的两个数组,一直递归下去,直到数组长度大小最大为2