专栏首页炉边夜话二分查找算法

二分查找算法

二分查找算法是基于已经排好序的数列。这是它的实现:

#include <stdio.h> #include <stdlib.h> #include <string.h>

//二分法查找

int find(int *result,int key,int len) {  int first,end,mid;  first=0;  end=len-1;  while(first<=end)//注意这里的等于  {   mid=(first+end)/2;   if(result[mid]==key)   {    return 1;   }   else if(result[mid]>key)   {    end=mid-1;   }   else   {    first=mid+1;   }  }  return 0;

}

int main() {  int value[10]={1,2,3,4,5,6,7,8,9,10};  int res=find(value,4,10);  printf("%d/n",res);

 return 0; }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java 异常处理学习笔记

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    ternturing
  • JNI使用技巧点滴(二)

    作者:normalnotebook 背景<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com...

    ternturing
  • 冒泡和选择排序

    #include <stdio.h> #include <stdlib.h> #include <string.h> //冒泡排序 void bubbleSor...

    ternturing
  • 牛客NOIP提高组R1 A中位数(二分)

    设$s[i]$表示$1-i$中有多少比它大的,要求的长度为$len$,我们记下$s[i - len]$的最小值为$Mi$

    attack
  • 【手绘漫画】图解LeetCode之x 的平方根(LeetCode 69题)

    可以看到,mid * mid <= x 时,所以 target 在 mid 的右侧,因为有等号,所以 left = mid,mid * mid <= x 这么写...

    我是管小亮
  • [剑指offer] 数字在排序数组中出现的次数

    正常的思路就是二分查找了,我们用递归的方法实现了查找k第一次出现的下标,用循环的方法实现了查找k最后一次出现的下标。 除此之外,还有另一种奇妙的思路,因为da...

    尾尾部落
  • 漫画:什么是二分查找?(修订版)

    2.代码中,获取中位数下标的逻辑不能写成 mid=(start+end)/2,这样写的话,如果start和end值很大,有可能出现溢出。最严谨的写法是:mid=...

    小灰
  • LeetCode 378. 有序矩阵中第K小的元素(二分查找)

    给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。

    Michael阿明
  • LeetCode 319. Bulb Switcher

    ShenduCC
  • 高频手撕算法合集来了!

    基础数据结构的融合是成为庞大系统的基石。比如 Redis 中的跳跃表,数据库索引B+树等,只有对基础的数据结构足够的熟悉才能更容易去理解稍微复杂的结构,就仿佛我...

    帅地

扫码关注云+社区

领取腾讯云代金券