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;
    }
}




二叉搜索树(Binary Search Tree )的定义及分析

定义:     二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 每个结点都有一个作为搜索依据的关键码(key),所有结点的关键码互不相同。 左子树(如果非空)上所...
  • jsh13417
  • jsh13417
  • 2013年01月22日 21:59
  • 3430

内表使用Binary Search的限制

在ABAP内表操作过程,Read Table有以下一种格式: READ TABLE - free_key  Syntax ... WITH KEY comp1 = dobj1...
  • zhongguomao
  • zhongguomao
  • 2016年09月05日 10:27
  • 814

linear search 和 binary search的区别

A linear search looks down a list, one item at a time, without jumping. In complexity terms this i...
  • colddie
  • colddie
  • 2013年04月15日 12:32
  • 1889

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

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

read table ..... binary search问题

  Read Table 的语法很多,这里说一种特殊情况,Read Table 中查询的时候对标准内表经常有一种二分优化查找,用Binary search的时候首先必须要有查询条件;但如果查询条件满足...
  • Lynnlichao
  • Lynnlichao
  • 2010年11月09日 21:23
  • 2866

ABAP性能优化技巧—使用二分查找(Binary Search)选项

READ命令使用顺序查找数据表,这会降低处理速度。取而代之,使用binary search的附加命令,可以使用二分查找算法,可以帮助加快内表查找速度。 在使用binary search之前必须首先将内...
  • Victor9279
  • Victor9279
  • 2016年11月02日 14:52
  • 614

Unique Binary Search Trees -- LeetCode

原题链接: http://oj.leetcode.com/problems/unique-binary-search-trees/  这道题要求可行的二叉查找树的数量,其实二叉查找树可以任意取根,只要...
  • linhuanmars
  • linhuanmars
  • 2014年04月30日 06:16
  • 20333

95 Unique Binary Search Trees II

题目链接:https://leetcode.com/problems/unique-binary-search-trees-ii/题目:Given n, generate all structural...
  • ChilseaSai
  • ChilseaSai
  • 2015年11月28日 12:59
  • 2930

二叉搜索树(Binary Search Tree)的插入与删除

二叉搜索树的插入关键是要找到元素应该插入的位置,可以采用与Find类似的方法。 二叉搜索树的删除则要考虑三种情况:   1.要删除的是叶节点:直接删除,并再修改其父节点指针置为NULL ...
  • song_hui_xiang
  • song_hui_xiang
  • 2015年08月16日 13:10
  • 1015

数据结构-BST(Binary Search Tree)

/****************************************** 数据结构: BST(Binary Search Tree),二叉查找树; 性质: 若结点的左子树不空,则左子树...
  • Jarily
  • Jarily
  • 2013年03月15日 19:00
  • 7131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:binary search
举报原因:
原因补充:

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