JAva実装二分法任意数の検索
2798 ワード
JAva実装二分法任意数の検索
今日は小さなものを書いて、二分法を利用して配列要素の検索を実現して、まず私たちはその実現論理を知る必要があります.まず、検索するデータは秩序正しく、重複しない必要があるので、まずソートします.ここではカスタムデータで、ソートしません.を選択します.くだらないことは言わないで、コードの中に注釈があって、必要なみんなは自分で見て、簡単に理解することができます.コードは次のとおりです:
こんなに簡単で、終わりました.これでテストを実行できます.
今日は小さなものを書いて、二分法を利用して配列要素の検索を実現して、まず私たちはその実現論理を知る必要があります.まず、検索するデータは秩序正しく、重複しない必要があるので、まずソートします.ここではカスタムデータで、ソートしません.を選択します.くだらないことは言わないで、コードの中に注釈があって、必要なみんなは自分で見て、簡単に理解することができます.
public class Text{
public static void main(String[] args){
int[] list = {2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79};
int i =binarySearch(list,11);
System.out.println(i);
}
/**
* ,
* : ,
*/
public static int binarySearch(int[] list, int key) {
int low = 0;
int high = list.length - 1;
while (high >= low) {
//
int mid = (low + high) / 2;
// , , -1
if (key < list[mid])
high = mid - 1;
else if (key == list[mid])
return mid;
else
low = mid + 1;
}
return -low - 1; // Now high < low
}
}
こんなに簡単で、終わりました.これでテストを実行できます.