1. 程式人生 > >Java陣列-二分查詢法用於元素插入有序陣列,並獲取元素插入的位置

Java陣列-二分查詢法用於元素插入有序陣列,並獲取元素插入的位置



/*
對摺半查詢法的擴充套件應用
面試題:
給定一個有序的陣列,如果往該陣列中儲存一個元素,並保證這個陣列還是有序的,
那麼該元素的儲存的角標為如何獲取。
*/

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命令時報錯,抓狂了好久才找到錯誤。