2017年6月24日 星期六
第八章 QuickSort排序法 由大排到小
題目:使用Ellis Horowitz法,將陣列由大到小依序排列
class Sorter1 {
int[] data;
void quickSort(int start,int end) {
if(start >= end) {
return;
}
int mid = data[(start + end) / 2];
int left = start;
int right = end;
while(true) {
while(data[left] > mid) {
left++;
}
while(data[right] < mid) { //
right--;
}
if(left < right) { //
int temp = data[left]; //
data[left] = data[right];
data[right] = temp;
left++; //
right--; //
show();
}
else //
break;
}
quickSort(start,left-1);
quickSort(right+1,end);
}
void show() {
for(int i:data) {
System.out.print(i +" ");
}
System.out.println("");
}
void sort(int[] data) {
this.data = data;
show();
quickSort(0,data.length - 1);
}
}
public class HomeWork0810 {
public static void main(String[] argv) {
int[] data = new int[argv.length];
for(int i = 0;i < data.length;i++) {
data[i] = java.lang.Integer.parseInt(argv[i]);
}
Sorter1 s = new Sorter1();
s.sort(data);
}
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言