首页 > 其他分享 >折半查找(二分查找法)

折半查找(二分查找法)

时间:2023-04-25 21:15:32浏览次数:40  
标签:折半 二分 int mid 查找 low

问题描述:

N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置。若找到,则输出其下标值;反之,则输出“Not be found! ”。

代码:


#include<iostream>
#define N 10
int main()
{
	int k,i0=-1, a[N] = { 3,12,30,34,45,57,66,78,89,100 };
	int mid = (N - 1) / 2;
	int low = 0, high = N - 1;
	std::cin >> k;
	
	if (k > a[mid]) {
		for (int i = mid + 1; i <= high; i++) {
			if (a[i] == k) {
				i0 = i;
				std::cout << "下标为" << i0 << std::endl;
				break;
			}

		}

	}
	else if (k < a[mid]) {
		for (int i = mid-1 ; i >= low; i--) {
			if (a[i] == k) {
				i0 = i;
				std::cout << "下标为" << i0 << std::endl;
				break;
			}

		}

	}
	else if(k == a[mid]) {
		i0 = mid;
		std::cout << "下标为" << i0 << std::endl;
	}
	if (i0 ==-1) {
		std::cout << "Not be found" << std::endl;
	}



}

执行结果:

image

image

标签:折半,二分,int,mid,查找,low
From: https://www.cnblogs.com/drip3775/p/17353868.html

相关文章

  • 1.9 折半查找
    #include<stdio.h>#defineN10intmain(){inti,a[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m;printf("a数组种的数据如下:\n");for(i=0;i<=N;i++)printf("%d",a[i]);printf("\n");......
  • 实例解释BCELoss与BCEWithLogitsLoss的关联(二分类问题)
      BCEWithLogitsLoss=Sigmoid+BCELoss,      nn接口                       Function接口nn.BCELoss()                 F.binary_cross_entropy()nn.BCEWithLogitsLos......
  • 查找指定字符串在某个字符串中的出现次数
    c语言代码实现:此处)折叠或打开1.#include<stdio.h>2.<string.h>3.intsearchnum(char*str,char*pattern)4.{5.if(str==NULL)6.;7.*pos=NULL;8.intcount=0;9.while((pos=strstr(str,pattern))!=NULL)10.{11.++;1......
  • 信创操作系统--麒麟Kylin桌面版(项目四 文件与目录管理:文件浏览、管理、查找、共享等)
    浏览目录和文件单击任务栏中的【文件管理器图标】即可打开文件管理器,也可单击桌面的【计算机】图标也可进入文件管理器,进入之后即可浏览与查看,如图1-1所示,在【计算机】的页面中,可以单击【本地分区】、【网上邻居】下的相关选项或单击左侧的文件菜单栏,可以进入相对应的文件夹。图1-1......
  • vim中实现全文查找替换确认操作
    我们很多时候会需要某个字符串在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认::%s/aaa/bbb/g#替换当前文本所有行的aaa为bbb#在命令后面加上一个字母c就可以实现,即::%s/aaa/bbb/gc#顾名思意,c是confirm的缩写  效果: ......
  • 如何在Linux中查找一个文件
    导读对于新手而言,在Linux中使用命令行可能会非常不方便。没有图形界面,很难在不同文件夹间浏览,找到需要的文件。本篇教程中,我会展示如何在Linux中查找特定的文件。第一步要做的是通过SSH连接到你的Linux,在Linux中查找文件有两种方法。一种是使用 find 命令find命令使......
  • ZOJ Monthly, August 2014 ZOJ - 3806 计算几何+二分
    Atriangleisonethebasicshapesingeometry.It’sapolygonwiththreeverticesandthreesideswhicharelinesegments.AtrianglewithverticesA,B,CisdenotedΔABC.Anditsthreesides,BC,CA,ABareoftendenoteda,bandc.Theincircleofat......
  • XI Samara Regional Intercollegiate Programming Contest Problem K. Video Reviews
    Thestudio«LodkaGaming»isengagedinadvertisingoftheirnewgame«.C.O.N.T.E.S.T:UnexpectedBehaviour».Thestudio’smarketerisplanningtocommunicatewithnvideobloggersonebyone(inthepredeterminedorder,startingfromthe1-standend......
  • HDU - 5649 线段树+区间二分答案 (好题)
    DZYhasasequencea[1…n].Itisapermutationofintegers1∼n.Nowhewantstoperformtwotypesofoperations:0lr:Sorta[l…r]inincreasingorder.1lr:Sorta[l…r]indecreasingorder.Afterdoingalltheoperations,hewilltellyouapositionk,andask......
  • 51 Nod 2497 数三角形 二分
    小b有一个仅包含非负整数的数组a,她想知道有多少个三元组(i,j,k),满足i<j<k且a[i],a[j],a[k]可能作为某个三角形的三条边的边长。 收起 输入第一行输入一个正整数n,表示数组a中元素个数;第二行n个非负整数,表示a中元素,以空格隔开;其中0<n≤1000,a中任意元素a[i]满......