binary search

原创 2015年07月11日 10:28:23

容易 二分查找

28%
通过

给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1

您在真实的面试中是否遇到过这个题? 
Yes
样例

在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2

挑战

如果数组中的整数个数超过了2^32,你的算法是否会出错?

class Solution {
    /**
     * @param nums: The integer array.
     * @param target: Target to find.
     * @return: The first position of target. Position starts from 0.
     */
    public int binarySearch(int[] nums, int target) {
        int low = 0;
        int high = nums.length - 1;
        while(low+1<high){
            int mid = low + (high-low)/2;
            if(target>nums[mid]){
                low = mid;
            }else if(target<nums[mid]){
                high = mid;
            }else{
                high = mid;
            }
        }
        if(nums[high] == target){
            return high;
        }
        if(nums[low] == target){
            return low;
        }
        
        return -1;
    }
}




Bucket sort-binary search

  • 2013年12月05日 09:13
  • 3KB
  • 下载

二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现[谁有源码麻烦贴过来个链接学习学习]

原文http://hedengcheng.com/?p=595#more-595 问题背景  今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下:   给定一个...
  • kayzhao
  • kayzhao
  • 2013年09月07日 19:00
  • 586

Binary search tree C++

  • 2014年12月07日 02:46
  • 516KB
  • 下载

算法导论第2章(3) 二分查找 binary search

二分查找(分治法)。 二分查找也是一种分治法的实现,每一次查找将数据分为两个部分,问题规模都减小一半。这样查找的时间复杂度为logN。因为其实查找过程建立了一棵有N个节点的二叉树,查找次数是这棵树的...

Optimal Binary Search Tree

  • 2009年10月06日 14:27
  • 510KB
  • 下载

二分查找 Binary Search(C++)

  • 2008年07月30日 14:24
  • 891B
  • 下载

Leetcode上几道Binary Search题需要注意的地方

Binary Search的原理很容易理解,但是每次脚标没算对弄得溢出或是死循环的时候总是很恼火。今天就把Leetcode上几道经典的利用Binary Search解的题放在一起来感受一下。 ...

optimal binary search tree

  • 2015年11月13日 23:00
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:binary search
举报原因:
原因补充:

(最多只允许输入30个字)