首页 > 其他 > 详细

binary search Template

时间:2015-02-07 18:38:01      阅读:211      评论:0      收藏:0      [点我收藏+]

Binary search is a famous question in algorithm. For a given sorted array (ascending order) and a target number, find the first index of this number in O(log n) time complexity. If the target number does not exist in the array, return -1. Example If the array is [1, 2, 3, 3, 4, 5, 10], for given target 3, return 2.

技术分享

public class BinarySearch {
    public int binarySearch(int[] A, int target) {
        if (A.length == 0)
            return -1;
        int start = 0;
        int end = A.length - 1;
        int mid;

        while (start + 1 < end) {
            mid = start + (end - start) / 2;
            if (A[mid] == target)
                end = mid;
            else if (A[mid] < target)
                start = mid;
            else if (A[mid] > target)
                end = mid;
        }

        if (A[start] == target)
            return start;
        if (A[end] == target)
            return end;
        return -1;
    }
}

binary search Template

原文:http://www.cnblogs.com/luochuanghero/p/4279057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!