|
快速排序 |
|
|
packagelgh;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
publicclassQuickSort{
publicstaticvoidquickSort(ElementelementArray[],intstartIndex,
intendIndex){
if(startIndex intq=partition(elementArray,startIndex,endIndex);
quickSort(elementArray,startIndex,q-1);//对左半段排序
quickSort(elementArray,q+1,endIndex);//对右半段排序
}
}
privatestaticintpartition(ElementelementArray[],intstartIndex,
intendIndex){
inti=startIndex;
intj=endIndex+1;
Elementx=elementArray[startIndex];
ElementelemTmp;
while(true){
while((elementArray[++i].compareTo(x)<0)&&(i while(elementArray[--j].compareTo(x)>0);
if(i>=j){
break;
}
elemTmp=elementArray[i];
elementArray[i]=elementArray[j];
elementArray[j]=elemTmp;
}
elementArray[startIndex]=elementArray[j];
elementArray[j]=x;
returnj;
}
publicstaticvoidoutputResult(ElementelementArray[]){
intlength=elementArray.length;
System.out.println("排序前数据系列:");
for(inti=0;i for(intj=0;j if(elementArray[j].id==(i+1)){
if(elementArray[j].isNum){
System.out.print(elementArray[j].num+"");
}else{
System.out.print(elementArray[j].string+"");
}
}
}
}
System.out.println("\n快速排序结果为:");
if(elementArray[0].isNum){
for(inti=0;i System.out.print(elementArray[i].num+"");
}
}else{
for(inti=0;i System.out.print(elementArray[i].string+"");
}
}
System.out.println("\n快速排序后下标秩序为:");
for(inti=0;i System.out.print(elementArray[i].id+""); }
System.out.println("\n");
}
publicstaticclassElementimplementsComparable |
|
|
|
|
|
|
|
|
|
|