一個(gè)有序的數(shù)字?jǐn)?shù)組,添加一個(gè)新的數(shù)值進(jìn)去春贸,新數(shù)組依舊是有序數(shù)組待秃,說(shuō)說(shuō)實(shí)現(xiàn)思路。
>>>請(qǐng)看js代碼妖混,并運(yùn)行
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));
原理是老赤,數(shù)組折半的原理,獲取應(yīng)該插入的索引
>>>Java原理也一樣制市,就不貼碼了