0

そのため、ほとんどの非プリミティブ データ型に使用できる線形検索を作成しようとしています。

私が使用しているコードは次のとおりです。

public static <T> boolean search(Comparable<T> key, T[] array) {
    for(int i = 0; i < array.length; i++) {
        if(array[i].equals(key)) {
            return true;
        }
    }
    return false;
}

これを行うためのより良い方法、またはより適切な方法があるかどうか疑問に思っていました。NB私は線形検索アルゴリズムを使用しようとしています

ありがとう

4

2 に答える 2

-3

二分探索がすごい!そして、それは非常に簡単です。

public static <T> boolean search(Comparable<T> key, T[] array) {
    int start = 0;
    int end = array.length - 1;
    while (start <= end) {
        int mid = (start + end) / 2;
        if (key == array[mid]) {
            return true;
        }
        if (key < array[mid]) {
            end = mid - 1;
        } else {
            start = mid + 1;
        }
    }
    return false;
}
于 2016-07-02T23:38:03.860 に答える