All pastes #205287 Raw Edit

BinarySearchClass

public text v1 · immutable
#205287 ·published 2006-10-16 18:20 UTC
rendered paste body
public class BinarySearchTest {
    // Predicted Output: 5
    // Actual Output: unknown (gotta test it)
    public static void main(String[] args) {
        int[] nums = new int[10];
        // Create an array of numbers from one to ten
        for (int i=0;i<=10;i++) {
            int[i] = i;
        }
        RecursiveBinarySearcher rbs = new RecursiveBinarySearcher();
        IterativeBinarySearcher ibs = new IterativeBinarySearcher();
        System.out.println(rbs.binarySort(nums, 0, 9, 6));
        System.out.println(ibs.binarySort(nums, 0, 9, 6));
    }
}

class RecursiveBinarySearcher {
    public int binarySearch(int[] numbers, int low, int high, int target) {
        int midNum = Math.round(low + (high - low) / 2);
        if (numbers[midNum] == target) {
            return midNum;
        } else if (numbers[midNum] < target) {
            return binarySearch(numbers, midNum + 1, numbers.length, target);
        } else if ((hi - low) <= 0) {
            // Not found
            return -1;
        } else {
            return binarySearch(numbers, low, midNum - 1, target);
        }
    }
}

class IterativeBinarySearcher {
    public binarySearch(int[] numbers, int low, int high, int target) {
        while ((high - low) > 0) {
            // search
            int midNum = Math.round(low + (high - low) / 2);
            if (numbers[midNum] == target) {
                return midNum;
            } else if (numbers[midNum] < target) {
                low = midNum + 1;
            } else if (numbers[midNum] > target) {
                high = midNum - 1;
            }
        }
    }
}
    }
}