首页 > 其他分享 >C语言二分查找

C语言二分查找

时间:2022-11-09 17:08:49浏览次数:51  
标签:二分 sz arr right int mid C语言 查找 left

#include<stdio.h>


int binary_search(int arr[],int k,int sz)

{


int left=0;

int right=sz-1;


while(left<=right)

{

int mid=(left+right)/2;

if(arr[mid]<k)

{

left=mid+1;

}

else if(arr[mid]>k)

{

right=mid-1;

}

else

return mid;


}

return -1;

}

int main()

{

int arr[]={1,2,3,4,5,6,7,8,9,10};


int k=7;

int sz=sizeof(arr)/sizeof(arr[0]);

 

int ret= binary_search(arr, k,sz);


if(ret==-1)

 {

 printf("找不到指定的数字\n");  

 }

else

{

printf("找到了,下标是:%d\n",ret);

}

return 0;

}

标签:二分,sz,arr,right,int,mid,C语言,查找,left
From: https://blog.51cto.com/u_13668714/5837329

相关文章

  • 算法之二分法(求根号一个数)
    1.二分法:指的是在一个区间内无限迫近一个数。2.代码解释:如果说需要排除01两个特殊值,那么需要把左指针的值变为1。左右指针是指向某一个数,而不是固定的,注意在i......
  • Vue学习记录--实现列表的添加删除以及查找功能
    1.x版本中的filterBy指令,在2.x中已经被废除:​​filterBy-指令​​<trv-for="iteminlist|filterBysearchNamein'name'"><td>{{item.id}}</td><td>{{item.name......
  • 使用Javascript查找图像上的坐标
    下面的代码在页面标题中。GetCoordinates函数使用window.event方法查找单击鼠标时的坐标。它还需要考虑任何滚动和图像在文档中的位置,以便坐标始终相对于图像的左上角。......
  • C语言指针运算
    指针运算指针可以加减运算,但不可以乘除运算。在指针中p++并不是加一,而是以素的值为单位加一,指向下一个单位,加多少字节 要看类型是什么。在指针变量名字前面加*比......
  • C语言——程序环境和预处理
    程序的翻译环境和执行环境编译+链接预处理一.程序的翻译环境和执行环境在ANSIC标准的任何一种实现中,存在两种不同的环境:翻译环境:该环境中源代码会被转换为可执行的机器......
  • 计算机等级考试二级C语言模拟试卷(四)
    一、选择题(每小题1分,共40分)   (1)下列关于栈叙述正确的是A)栈顶元素最先能被删除                 B)栈顶元素最后才能被删除C)......
  • C语言选择结构的执行条件
    在C语言中,有些细节常常被忽略:选择结构的执行条件我们知道,if()和elseif()是判断程序是否执行的函数。需要注意的是,这两个函数判断的是括号内的值是逻辑真(true)还是逻辑......
  • C语言的自增自减运算符
    简单去理解,C语言的自增自减运算符的最终结果就是对自身进行加一和减一操作。但是当++、--作为后缀时则具有延后性,可能对程序有一些副作用,并且其的优先级也会对程序产生一......
  • C语言逻辑运算符
    在C语言中,逻辑运算符有&&、||、!&&表示“与”的意思,需要两端的表达式的值都为true,该式的值才为true。||表示“或”的意思,两端的表达式的值只要有一端为true,该式的值就为t......
  • C语言逗号运算符
    在C语言中,逗号运算符虽然不起眼,但也是运算符的一种,而且在所有运算符中,逗号运算符的优先级是最低的。逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的......