首页 > 其他分享 >二分法查找

二分法查找

时间:2024-11-11 15:49:03浏览次数:1  
标签:high int mid 二分法 userInput 查找 low

二分查找

/*折半查找,二分查找*/
//已经排好序的数组中进行查询
#include<stdio.h>
int main(){
	int low, high, mid, userInput;//high low mid 记录的是数组下标
	int flag = 0;//记录能否找到
	int a[10] = {12,14,21,35,48,57,69,78,89,99};//二分查找的前提:已经有序
	low = 0;
	high = 9;
	scanf("%d",&userInput);
	while(low != high){//最小最大的下标不等,continue
		mid = (low + high) / 2;//二分查找,有点递归的意思了?
		if(a[mid] == userInput){
			flag = 1;
			printf("找到了!");
			break;
		}else if(userInput > a[mid]){
			low = mid;//输入的数字大于中间下标对应的值,更新下限low = mid
		}else{
			high = mid;//输入的数字小于中间下标对应的值,更新上限high = mid
		}	
	}
	if(flag == 0){//一定小心,是==,不要搞成赋值了
		printf("Not Found!");
	}	
	return 0;
}

标签:high,int,mid,二分法,userInput,查找,low
From: https://www.cnblogs.com/GJ504b/p/18539879

相关文章

  • apropos——在 whatis 数据库中查找字符串
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述apropos在whatis数据库中查找字符串补充说明apropos命令在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出。如果你不知道完成某个特定任务所需要命令的名称,可以使用一个关......
  • excel中查找亏损第一大第二大第三大的商品的亏损金额;涨出第一大,第二大,第三大的金额;以
     k2里的公式 =LARGE(IF(B:B="品类1",E:E),1)lL里的公式 =LARGE(IF(B:B="品类1",E:E),2)M2里额公式 =LARGE(IF(B:B="品类1",E:E),3)N2里的公式=MIN(IF(B:B="品类1",E:E),1)O2里的公式=SMALL(IF(B:B="品类1",E:E),2)P2里的公式 =SMALL(IF(B:B="品类1&......
  • Linux 查找命令总结
    在使用linux时,经常需要进行文件查找。五种命令是有区别的。区别:(1)find 根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。(2)grep根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。(3)which 查看可执行文件......
  • 二叉搜索树、AVL(平衡二叉查找树)、红黑树
    一、二叉搜索树二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树1.二叉搜索树的操作1.二......
  • 二分查找习题篇(上)
    二分查找习题篇(上)1.二分查找题目描述:给定⼀个n个元素==有序的(升序)==整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:​输入:nums=[-1,0,3,5,9,12],target=9​输出:4解释:9出现在nums......
  • 查找串口
    查询串口fromserial.tools.list_portsimportcomports(fromserial.tools.list_ports_windowsimportcomports)print(comports())[<serial.tools.list_ports_common.ListPortInfoobjectat0x0000014FD6B0A8C0>,<serial.tools.list_ports_common.ListPortInfo......
  • 34. 在排序数组中查找元素的第一个位置和最后一个位置
    题目参考了y总讲的这题789.数的范围自己是这样写的;classSolution{public:vector<int>searchRange(vector<int>&nums,inttarget){vector<int>result(2,-1);intl=0,r=nums.size()-1;while(l<r){......
  • c语言:一维数组+二维数组+二分查找法
     1:数组的概念     概念:数组是一组相同元素的集合。     特点:1、数组中存放的是一个或者多个数据,但是数组的元素个数不可以为0.3          2、数组里存放的数据是同类型的数据     分类:数组分为一维数组和多维数组,其中多......
  • ——二分查找——
    注意:代码中的left、right、mid都是下标,只有val代表的是值,区别好,才能更好理解代码。一、代码实现deffun(li,val):left=0#下标第一个right=len(li)-1#下标最后一个whileleft<=right:#查找范围,左......
  • vs code常见的查找快捷键大全
    本文原文来自:vscode常见的查找快捷键大全-frozencola技术日志VSCode提供了多种方法来查找和导航文件,包括快速打开文件、文件资源管理器、全局搜索、查找符号、查找文件中的文本、查找并替换、文件导航和使用命令面板。通过熟练使用这些方法,你可以提高开发效率,更快地找到和打......