码迷,mamicode.com
首页 > 编程语言 > 详细

基础算法 - 二分查找

时间:2019-01-11 17:22:14      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:sea   []   public   int   算法   二分查找   二分   code   private   

public class Main { private static int binary_search(int[] x, int key) { int l = 0, r = x.length - 1; while (l <= r) { int m = (l + r) >>> 1; if (x[m] == key) { return m; } else if (x[m] < key) { ++ l; } else { -- r; } } return -1; } private static int lower_bound(int[] x, int key) { int first = 0; int len = x.length; while (len > 0) { int half = len >>> 1; int m = first + half; if (x[m] < key) { // 右半区 first = m + 1; len -= half + 1; } else { // 左半区 len = half; } } return first; } private static int upper_bound(int[] x, int key) { int first = 0; int len = x.length; while (len > 0) { int half = len >>> 1; int m = first + half; if (x[m] <= key) { // 右半区 first = m + 1; len -= half + 1; } else { // 左半区 len = half; } } return first; } public static void main(String[] args) { } }

基础算法 - 二分查找

标签:sea   []   public   int   算法   二分查找   二分   code   private   

原文地址:http://blog.51cto.com/tianyiya/2341719

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!