一个有序的数字数组,添加一个新的数值进去,新数组依旧是有序数组,说说实现思路。
>>>请看js代码,并运行
var arr = [1,8,9,44,55,88,99,99];
function yxArr(arr,key){
var min = 0,max = arr.length - 1,mid;
while(min <= max){
mid = Math.floor((min + max)/2)
if(key > arr[mid]){
min = mid+1;
}else if(key < arr[mid]){
max = mid-1;
}else{
return mid;
}
}
return min;
}
console.log(arr);
console.log("43-----"+yxArr(arr,43));
console.log("44-----"+yxArr(arr,44));
console.log("45-----"+yxArr(arr,45));
原理是,数组折半的原理,获取应该插入的索引
>>>Java原理也一样,就不贴码了
网友评论