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]+" ");
}
}
}
注意每個路徑的可能性,如果不确定,那就把每個可能性都畫成圖畫出來