查找算法之二分查找

import static org.junit.Assert.*;

import org.junit.Test;

public class SearchAlorithms {
    /**
     * 二分查找算法 从start到end(包括start和end)之间的所有数中找到n
     * @param a
     * @param n
     * @param start
     * @param end
     * @return
     */
    static int binarySearch(int[] a, int n, int start, int end) {
        while (start <= end) {
            int mid = (start + end) / 2;
            if (n < a[mid])
                end = mid;
            else if (n > a[mid])
                start = mid + 1;
            else if (n == a[mid])
                return mid;
        }
        return -1;
    }
}
posted @ 2014-06-04 16:54  JintaoXIAO  阅读(213)  评论(0编辑  收藏  举报