演算法:當資料量很大適宜採用該方法。採用二分法查詢時,資料需是有序不重複的。 基本思想:假設資料是按公升序排序的,對於給定值 x,從序列的中間位置開始比較,如果當前位置值等於 x,則查詢成功;若 x 小於當前位置值,則在數列的前半段中查詢;若 x 大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。
假設有乙個陣列,現要求採用二分法找出指定的數值並將其在陣列的索引返回,如果沒有找到則返回 -1。**如下:
packagecn.sunzn.dichotomy;
public
class
dichotomysearch ;
system.out.println(search(arr, 12));
system.out.println(search(arr, 45));
system.out.println(search(arr, 67));
system.out.println(search(arr, 89));
system.out.println(search(arr, 99));
}public
static
int search(int arr, int
key)
else
if (key >arr[middle])
else
}return -1;
}}
Java 程式設計下的二分法查詢
演算法 當資料量很大適宜採用該方法。採用二分法查詢時,資料需是有序不重複的。基本思想 假設資料是按公升序排序的,對於給定值 x,從序列的中間位置開始比較,如果當前位置值等於 x,則查詢成功 若 x 小於當前位置值,則在數列的前半段中查詢 若 x 大於當前位置值則在數列的後半段中繼續查詢,直到找到為止...
Java 二分法查詢
這學期學了資料結構這門課,這會都期末了才想起來更新部落格,所以我就來了,話不多說。如下 package com.vgbh public class binarysearch 二分法查詢必須是已經排序好的數列,且必須為正序,才可進行查詢 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢...
Java二分法查詢
前提 必須是有序的資料。基本思想 把乙個有序的資料乙份為二。然後判斷是比目標資料大了還是小了,如果小了往左邊的部分找 如果大了往右邊的資料找。確定了找的方向後再次把資料一分為二,繼續上面的步驟直到找到為止。涉及到了遞迴的思想。通俗的講 每次減少一半,然後確定方向,再次減少一半,直到找到為止。1 傳入...