美文网首页
二分查找(非递归)

二分查找(非递归)

作者: RalapHao | 来源:发表于2019-06-18 17:52 被阅读0次
  1. 循环重置起始于结束小标
public class HalfSerach {

    public static void main(String[] args) {
        int[] array = {
                1, 3, 5, 7, 9, 11, 13, 15, 17, 19
        };
        HalfSerach hs = new HalfSerach();
        hs.halfSerach(array, 5);
    }

    /**
     * 二分查找,非递归
     */
    public void halfSerach(int[] array, int target) {
        int start = 0;
        int end = array.length - 1;
        int mid = -1;
        while (start < end) {
            mid = (start + end) / 2;
            if (array[mid] == target) {
                break;
            } else if (array[mid] > target) {
                end = mid - 1;
            } else {
                start = mid + 1;
            }
        }
        if (start >= end) {
            mid = -1;
        }
        System.out.println(mid);
    }
}

相关文章

网友评论

      本文标题:二分查找(非递归)

      本文链接:https://www.haomeiwen.com/subject/gbbfqctx.html