stats/src/main/java/io/airlift/stats/cardinality/SparseHll.java
private int searchBucket(int bucketIndex)
    {
        int low = 0;
        int high = numberOfEntries - 1;

        while (low <= high) {
            int middle = (low + high) >>> 1;

            int middleBucketIndex = decodeBucketIndex(entries[middle]);

            if (bucketIndex > middleBucketIndex) {
                low = middle + 1;
            }
            else if (bucketIndex < middleBucketIndex) {
                high = middle - 1;
            }
            else {
                return middle;
            }
        }

        return -(low + 1); // not found... return insertion point
    }
private int searchBucket(int bucketIndex)
    {
        int low = 0;
        int high = numberOfEntries - 1;

        while (low <= high) {
            int middle = (low + high) >>> 1;

            int middleBucketIndex = decodeBucketIndex(entries[middle]);

            if (bucketIndex > middleBucketIndex) {
                low = middle + 1;
            }
            else if (bucketIndex < middleBucketIndex) {
                high = middle - 1;
            }
            else {
                return middle;
            }
        }

        return -(low + 1); // not found... return insertion point
    }
private int searchBucket ( int bucketIndex ) { int low = 0 ; int high = numberOfEntries - 1 ; while ( low <= high ) { int middle = ( low + high ) >>> 1 ; int middleBucketIndex = decodeBucketIndex ( entries [ middle ] ) ; if ( bucketIndex > middleBucketIndex ) { low = middle + 1 ; } else if ( bucketIndex < middleBucketIndex ) { high = middle - 1 ; } else { return middle ; } } return - ( low + 1 ) ; // not found... return insertion point }
Returns a index of the entry if found. Otherwise, it returns -(insertionPoint + 1)
Returns a index of the entry if found . Otherwise it returns - ( insertionPoint + 1 )