二分查詢 Java

2021-09-02 14:48:40 字數 1040 閱讀 7482

/** 

* 有序陣列遞迴二分查詢,定位值的下標

* * @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 二分查詢

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...