/**
* 有序陣列遞迴二分查詢,定位值的下標
* * @param arr 目標陣列
* @param start 起始下標
* @param end 末尾下標
* @param key 查詢的值
* @return 值的下標
*/
static int binarysearch(final int arr, int start, int end, int key)
/* 中間位置:(end + start) / 2 等於 (end + start) >> 1 */
int mid = (end + start) >> 1;
if (key == arr[mid])
if (key > arr[mid])
if (key < arr[mid])
return binarysearch(arr, start, end, key);
}
/**
* 有序陣列迴圈二分查詢,定位值的下標
* * @param arr 目標陣列
* @param start 起始下標
* @param end 末尾下標
* @param key 查詢的值
* @return 值的下標
*/
static int binarywhilesearch(final int arr, int start, int end, int key)
/* 中間位置:(end + start) / 2 等於 (end + start) >> 1 */
mid = (end + start) >> 1;
if (key > arr[mid])
if (key < arr[mid])
} while (key != arr[mid]);
return mid;
}
java二分查詢
public class binarysearch int value 11 int pos binarysearch int arrays,value system.out.println the pos is pos private static int binarysearch int int...
Java二分查詢
二分查詢的陣列是有序排列的。查詢時,會首先定位到陣列的中間位置,將中間值和查詢值比較,如果相等則返回,否則,如果當前元素值小於查詢值,則繼續在陣列的後面一半查詢,如果當前元素值大於查詢值,則在陣列的前面部分查詢,直到找到目標值或者無法再二分陣列時停止。static boolean binaryser...
java 二分查詢
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...