敲代碼的第。。。天,一道很簡單的面試題

今天碰到一個非常非常簡單的面試題,但是我還是在規定的時間沒有寫出來,藉此紀念一下。

/*

面試題:

給定一個有序的數組,如果往該數組中存儲一個元素,並保證這個數組還是有序的,那麼這個元素存儲的角標如何獲取

*/

class ArrayDemo

{

public static void main(String[] args)

{

int[] arr = {2,5,7,12,15,17,19,30,39,48,89,90};

int index = halfSearch(arr,1);

System.out.println(index);

}

public static int halfSearch(int[] arr,int key)

{

  int max,min,mid;

  max = arr.length - 1;

  min = 0;

  while(min <= max)

  {

  mid = (max + min) / 2;

if(key > arr[mid])

min = mid + 1;

else if(key < arr[mid])

max = mid - 1;

else

return mid;

  }

return min;

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章