ゆるふわ競プロ

Javaでゆるゆる競プロしています.忘れっぽいのでメモ用,復習用

Java 二分探索 BinarySearch

Javaで二分探索を実装しました

class BinarySearch {
    static int solve(int[] array, int key) {
        int left = 0;
        int right = array.length - 1;
        int mid;
        while (left <= right) {
            mid = (left + right) / 2;
            if (array[mid] < key) {
                left = mid + 1;
                continue;
            } else if (key < array[mid]) {
                right = mid - 1;
                continue;
            } else {
                return mid;
            }
        }
        // 存在しない場合
        return -1;
    }
}

使い方

static関数にしてあるのでインスタンスを作らずにそのまま関数を呼び出すことができる.

BinarySearch.solve ( 配列 , 探したい数字 );

memo

存在する場合は index を返す. 存在しない場合は -1 を返すようにしてある.