有序陣列的二分查詢

2021-08-28 20:05:30 字數 773 閱讀 5039

給出乙個有序陣列(公升序),以及指定的數值。

返回指定數值在陣列中的下標(若不存在則返回-1)。

/**

* 在傳入的公升序陣列arr中查詢是否有元素值與給定的number相等。

* * @param arr 有序陣列(公升序)

* @param number 指定的數值

* * @return 指定數值在該陣列中的下標值。(返回-1表示不存在)

*/static int binarysearch(int arr, int number) else if (val < number) else

} return -1;

}

public static void main(string args) ;

for (int i = 0; i < arr.length; i++)

}

012

3456

78910

1112

1314

1516

函式執行正確之後,進行簡單的優化。

static int binarysearch(int arr, int number)  else if (val > number)  else 

} return -1;

}

tips

個人看法 引用

二分查詢有序陣列

對於乙個有序字串陣列,用二分法查詢某一字串是否存在於該字串陣列中。函式原型為 bool binarysearch const vector array,const string target 注意這裡的有序指的是字典序,如字串陣列 a,ab,ac,bc,cd,d 就是有序字串陣列,而 a,b,ab ...

二分查詢(基於有序陣列)

採用一對平行的陣列,乙個儲存鍵乙個儲存值 實現的核心是rank 方法,它返回表中小於給定鍵的鍵的數量。二分查詢法 將被查詢的鍵和子陣列的中間鍵比較。如果被查詢的鍵小於中間鍵,就在左子陣列中繼續查詢,如果大於就在右子陣列中繼續查詢,否則中間鍵就是我們要找的鍵。實現 rank 採用了二分查詢法,rank...

迴圈有序陣列二分查詢

演算法描述,乙個有序的陣列,從開始到中間擷取一段陣列放到陣列的尾部,這個陣列會變成迴圈有序的陣列,在這個迴圈有序的陣列中進行二分查詢 例如 1,2,3,4,5,6,7,8,9 擷取前4位放到尾部會變成5,6,7,8,9,1,2,3,4 變成迴圈有序的陣列 演算法實現 採用二分查詢的方式,獲取中間的乙...