Java基礎必備 二分法查詢

2021-06-26 12:40:27 字數 964 閱讀 8332

/*

演算法:當資料量很大適宜採用該方法。採用二分法查詢時,資料需是有序不重複的。

基本思想:

假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,

如果當前位置值等於 x,則查詢成功;

若 x 小於當前位置值,則在數列的前半段中查詢;

若 x 大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。

查詢 key=58

陣列arr: | 10 | 16 | 38 | 58 | 118|

*************************=

第一次: | 10 | 16 | 38 | 58 | 118| //min=0,max=4,mid=2,key>arr[mid],在後半段查詢;

^ ^ ^

第二次: | 10 | 16 | 38 | 58 | 118| //min=3,max=4,mid=3,key==arr[mid],則key查詢到;*/

public static int binarysearch(int arr, int key)

else if (keymax) //如果小標》大標,沒有找到給定的值;

mid = (min+max)/2; //設定中標=(小標+大標)/2;

}return mid; //arr[mid]==key,則返回中標;

}public static void main(string args)

;int index = binarysearch(arr,58);

system.out.println("index="+index);

index = binarysearch(arr,8);

system.out.println("index="+index);

}#執行結果:

index=3

index=-1

Java 二分法查詢

這學期學了資料結構這門課,這會都期末了才想起來更新部落格,所以我就來了,話不多說。如下 package com.vgbh public class binarysearch 二分法查詢必須是已經排序好的數列,且必須為正序,才可進行查詢 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢...

Java二分法查詢

前提 必須是有序的資料。基本思想 把乙個有序的資料乙份為二。然後判斷是比目標資料大了還是小了,如果小了往左邊的部分找 如果大了往右邊的資料找。確定了找的方向後再次把資料一分為二,繼續上面的步驟直到找到為止。涉及到了遞迴的思想。通俗的講 每次減少一半,然後確定方向,再次減少一半,直到找到為止。1 傳入...

二分法查詢 Java

原理 基本思想 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。演算法 假如有一組數為3,12,24,36,55,68,75,88要查給定的值2...