public static void main(String[] args) {
LinkedList<Integer> linkedList = new LinkedList<Integer>();
linkedList.add(1);
linkedList.add(6);
linkedList.add(2);
linkedList.add(3);
linkedList.add(8);
linkedList.add(2);
linkedList.add(12);
LinkedList<Integer> list = sort(linkedList);
for(int i = 0; i < list.size() ; i++){
System.out.println(list.get(i));
}
}
public static LinkedList sort(LinkedList<Integer> linkedList){
int low , high , mid , num;
int intmid=0 , inthigh=0 , intlow =0;
for(int i =1 ; i < linkedList.size() ; i ++){
low = 0 ; high = i-1; mid = high/2; num = linkedList.get(i);
//折半查找插入位置
while(low <= high){
intmid = (int) linkedList.get(mid);
if(num <= intmid){
high = mid - 1;
mid = (low+high)/2;
}else{
low = mid+1;
mid = (low+high)/2;
}
}
num = linkedList.get(i);
linkedList.remove(i);
linkedList.add(high+1 , num);
}
return linkedList;
}
面试题之折半插入排序
最新推荐文章于 2021-05-18 06:57:57 发布