天天看點

java快速排序 數組_使用Java給數組快速排序

public class FastSort {

public void sort1(int[] ss,int begin,int end) {

if (begin < end) { //很容易被忽視的前提條件,如果沒有這個條件,會出現堆棧溢出

int i = begin, j = end;

int temp = ss[begin];

while (i < j) {

while (i < j && ss[j] > temp) {

j--;

}

if (i < j) {

ss[i] = ss[j];

ss[j]=temp;

i++;

}

while (i < j && ss[i] < temp) {

i++;

}

if (i < j) {

ss[i] = ss[j];

ss[j]=temp;

j--;

}

}

ss[i] = temp;

sort1(ss,begin,i-1);

sort1(ss,i+1,end);

}

}

public static void main(String[] args) {

FastSort fs=new FastSort();

int ss[]={78,45,23,45,56,89,85};

fs.sort1(ss,0,ss.length-1);

for(int i=0;i

System.out.print(ss[i]+" ");

}

}

}

注意每個路徑的可能性,如果不确定,那就把每個可能性都畫成圖畫出來