Sha256: 72d47a84161d3df15532500c490ee6aacdf3db589769664f644cc73a2f76c9b2

Contents?: true

Size: 850 Bytes

Versions: 131

Compression:

Stored size: 850 Bytes

Contents

import java.util.List;

class BinarySearch<T extends Comparable<T>> {

    private List<T> array;
    private int arraySize;

    BinarySearch(List<T> array) {
        this.array = array;
        this.arraySize = array.size();
    }

    int indexOf(T value) {
        return search(value);
    }

    private int search(T value) {
        int left = 0;
        int right = this.arraySize - 1;
        int middle;
        T element;
        while (left <= right) {
            middle = (int) Math.floor(0.5 * (left + right));
            element = this.array.get(middle);
            if (value.compareTo(element) > 0) {
                left = middle + 1;
            } else if (value.compareTo(element) < 0) {
                right = middle - 1;
            } else {
                return middle;
            }
        }
        return -1;
    }
}

Version data entries

131 entries across 131 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.179 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.178 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.177 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.176 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.175 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.174 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.173 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.172 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.171 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.170 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.169 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.167 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.166 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.165 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.164 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.163 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.162 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.161 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java
trackler-2.2.1.160 tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java