您的位置:首页 > 其它

插入排序之二分法插入排序

2017-09-08 10:00 162 查看
                                       二分插入排序

二分法插入排序是在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left<right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。

//二分插入排序
public void sortIntegers(int[] A) {
// Write your code here
int i,j,x;
int n=A.length;
for(i=1;i<n;i++){
x=A[i];
int left=0;
int right=i-1;
while(left<=right){
int mid=(left+right)/2;
if(x<A[mid]){
right=mid-1;
}else{
left=mid+1;
}
}
for(j=i-1;j>=left;j--){
A[j+1]=A[j];
}
A[left]=x;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息