static public void quitSort(int biao,List<Integer> list,int beginIndex,int endIndex) {
int pivot;//没记记录中间的值得索引
if (beginIndex<endIndex) {
pivot = partition(biao, list, beginIndex, endIndex);//分为两半
quitSort(biao, list, beginIndex, pivot-1);//前边一半进行循环分割排序
quitSort(biao, list, pivot+1, endIndex);//后边一半进行循环分割排序
}
}
static public int partition(int biao,List<Integer> list,int beginIndex,int endIndex) {
while(beginIndex != endIndex){
if (list.get(beginIndex) > list.get(endIndex)) {
int tem = list.get(endIndex);
list.set(endIndex, list.get(beginIndex));
list.set(beginIndex, tem);
if (biao == list.get(endIndex)) {
beginIndex++;
}else{
endIndex--;
}
}else{
if (biao == list.get(beginIndex)) {
endIndex--;
}else{
beginIndex++;
}
}
}
return beginIndex;
}