Java陣列-二分查詢法用於元素插入有序陣列,並獲取元素插入的位置
阿新 • • 發佈:2019-01-08
/*
對摺半查詢法的擴充套件應用
面試題:
給定一個有序的陣列,如果往該陣列中儲存一個元素,並保證這個陣列還是有序的,
那麼該元素的儲存的角標為如何獲取。
*/
class InsertToArrary1
{
public static void main(String[] args)
{
int[] arr = {13,15,19,28,33,45,78,106};
int index = insertToArrary(arr,50);
System.out.println("index = "+ index);
}
public static int insertToArrary(int[] arr, int key)
{
int max,min,mid;
min = 0;
max = arr.length-1;
while(min<=max)
{
mid = (min+max)/2;
if(key>arr[mid])
min = mid+1;
else if(key<arr[mid])
max = mid-1;
else
return mid;
//在min<=max的情況下,遍歷比較的最後結果是min=max,然後返回元素插入的位置
}
return min;
//最後min>max的情況下,返回min值,就是元素插入的位置
}
}
最後注意類名拼寫,如果類名和檔名相同,一定要注意不要發生拼寫錯誤,本人就是類名拼寫少個r,在執行javac命令時執行正常,執行java命令時報錯,抓狂了好久才找到錯誤。