首页 > 其他分享 >折半查找

折半查找

时间:2023-04-25 21:23:29浏览次数:34  
标签:折半 mid else high 查找 low printf

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

完整程序:

#include<stdio.h>

#define N 10

main()

{

int i,a[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m;

printf{"a数组中的数据如下:\n"};

printf(("%d",a[i]};

printf("\n"};

printf("Enter m:");

scanf("%d",&m);

while(low<=high)

{

mid=(low+high)/2;

if(m<a[mid])

high=mid-1;

else

if(m>a[mid])

low=mid+1;

else

{

k=mid;

break;

}

}if(k>=0)

printf("m=%d,index=%d\n",m,k);

else

printf("Not ba found!\n"}

}

标签:折半,mid,else,high,查找,low,printf
From: https://www.cnblogs.com/zjm921/p/17353924.html

相关文章

  • 折半查找(二分查找法)
    问题描述:N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置。若找到,则输出其下标值;反之,则输出“Notbefound!”。代码:#include<iostream>#defineN10intmain(){ intk,i0=-1,a[N]={3,12,30,34,45,57,66,78,89,100}; intmid=(N-1)/......
  • 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");......
  • 查找指定字符串在某个字符串中的出现次数
    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命令使......
  • 数组的复制、反转、线性查找、二分查找
    publicclassArrayTest2{ publicstaticvoidmain(String[]args){ String[]arr=newString[]{"JJ","DD","MM","BB","GG","AA"}; //数组的复制(区别于数组变量的赋值:arr1=arr) String[]arr1=new......
  • #yyds干货盘点# LeetCode程序员面试金典:在排序数组中查找元素的第一个和最后一个位置
    题目:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。 示例1:输入:nums=[5,7,7,8,8,10],target=......
  • 查找元素索引重复
    publicclassTest4_2{publicstaticvoidmain(String[]args){int[]arr={11,33,44,55,11,11,};int[]result=getIndex(11,arr);if(result.length==0){System.out.println("抱歉,你输入的元素有误!");......
  • 有重复值的二分查找
    最近在验证SQLjoin的算法,感觉在内存中实现的话,比较高效的方法就是二分查找了。但与普通二分查找不同,SQLjoin的时候左右两边的值可能会有重复,这些重复值都是要找到的。所以我对二分查找进行了升级优化,不再返还一个索引,而是返回一个索引范围,找不到就返回null实现了两个版本:1.......