关闭

二分查找的两种(找到val,找到第一val)

327人阅读 评论(0) 收藏 举报
分类:

对{1,2,3,3,3,3,3,4,5},找到3和找到在数组里面出现的第一个3,思路略有不同

找到3:

int binary_search_my(int* a,int n,int val)
{
	int start=0;
	int end=n-1;
	while(start<=end)
	{
            int mid=(start+end)>>1;
            if(a[mid]==val) return mid;
            else if(a[mid]>val) end=mid-1;
            else if(a[mid]<val) start=mid+1;
	}
	return -1;
}
找到第一个3:
int find_first(int *a,int n,int val)
{
    int start=0;
    int end=n-1;
    while(start<=end)
    {
        if(end-start==1)
        {
            if(a[start]==val) return start;
            else if(a[end]==val) return end;
            else    return -1;
        }
        int mid=(start+end)>>1;
        if(a[mid]>=val) end=mid;
        else if(a[mid]<val) start=mid;
    }
}



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

《程序员面试金典》--寻找二叉树中两个节点的第一个公共祖先(三种情况)

/***************************************************************************************************...
  • zdplife
  • zdplife
  • 2015-10-26 19:21
  • 1862

二分查找算法(递归与非递归两种方式)

首先说说二分查找法。 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回1,失败返回对应的数组下标。 采用非递归方式完成二分查找法。java代码如...
  • lovesummerforever
  • lovesummerforever
  • 2014-04-27 15:44
  • 84535

两个排序的数组,找到第k大的元素

给你两个排序的数组,A和B,大小分别是 m 和 n。找到把 A和B 归并后的数组中,第k大的元素。(假定没有重复元素)。 The trivial way, O(m + n): Merge both...
  • jiyanfeng1
  • jiyanfeng1
  • 2013-02-28 00:12
  • 1934

二值化 two——val

  • 2011-03-18 21:45
  • 6KB
  • 下载

bsds500val

  • 2014-06-24 11:04
  • 7.34MB
  • 下载

清北学堂第一题 游乐园 SmartOJ 1815(二分查找的精髓)

本人原创日志,允许转载,但请注明出处,谢谢! 题目描述 游乐园里新推出一个游戏——飞机驾驶体验。有N-1个小朋友来玩这个游戏,他们排成长长的一列。这个游戏一共有M架“飞机”可供驾驶,每架飞机的...
  • u012905448
  • u012905448
  • 2014-09-09 23:03
  • 956

val2014.zip 百度云分享 coco数据集

  • 2017-12-10 19:43
  • 49B
  • 下载

VAL 股票价值回归

  • 2006-03-16 00:00
  • 2.46MB
  • 下载

C语言经典算法(九)——递归实现二分查找的两种方法

后继续整理算法并写出自己的理解和备注。 C++实现的:递归实现二分查找算法 1、 递归实现二分查找 题目描述:针对数据,进行二分查找(要求:数据的排列有序) 方法一:概念法 方法二:递...
  • zxh1592000
  • zxh1592000
  • 2018-01-09 19:00
  • 8

二分查找算法的两种实现方式

二分查找的条件是对一组有序数组的查找,这一点很容易忘记,在使用二分查找的时候先要对数组进行排序。 先说一下二分查找的思路:一个有序数组,想要查找一个数字key的下标,首先算出中间下标mid,利用mid...
  • qq_38663729
  • qq_38663729
  • 2018-01-01 19:59
  • 32
    个人资料
    • 访问:41798次
    • 积分:908
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:28篇
    • 译文:0篇
    • 评论:3条