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

折半查找

时间:2023-04-18 22:58:13浏览次数:35  
标签:折半 mid high 查找 low 数组 printf

自然语言解决问题:输入一个属于数组中的数a,将数组中最大的数与最小的数之和折半并于此数a比较,若大于折半数则将折半数设为最小数并于最大数之和折半并于a比较,如此继续循环,反之亦然。

流程图:

 具体代码:

#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");
for(i=0;i<N;i++)
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 be found!\n");
}

标签:折半,mid,high,查找,low,数组,printf
From: https://www.cnblogs.com/Mini-Q/p/17331543.html

相关文章

  • 算法刷题系列——二分查找
    704.二分查找(2023.4.17)给定一个 n 个元素有序的(升序)整型数组 nums和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:......
  • 折半查找
    N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置。若找到,则输出其下标值;反之,则输出“Notbefound!”。由于我们将数存入数组当中,我们可以先设置最大值下标和最小值下标,通过下标表示数值,现将要找的数与最中间的数进行比较,若要找的数大,则在最中间的数和最大......
  • 折半查找
    1.问题描述:用二分法查找一段有序数组中的某个整数,输出其下标,如果没找的这输出“Notbefound”2.问题分析:分析问题知这个问题分为三部分:(1)输入N个整数(2)将这N个整数进行排序(3)使用二分法进行查找;3.算法设计:先输入一个整数N,用vector函数来储存这N个整数,用algorithm函数库中的sort()函......
  • day 9 二分查找
     1.输入一组有序数列;2.每次查找序列的中间位置并与目标数比较;3.依据比较缩小数列,直到找到目标数或数列长度为1;4.输出; #include<iostream>usingnamespacestd;intn,t,flag;inta[100];intf(intl,intr){while(l<r){intmid=l+r>>1;if(a[......
  • STATA 遍历查找
    sscinstallelabel,replacesysuseauto,clearused:\statashu\2\cgss2015,clearforeachvofvarlist_all{cap:sdecode`v',replace}usecgss2015-2,replacelocalk=_Nforeachvarofvarlist_all{locala:varlabel`var'//disp&qu......
  • 二分查找
    给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,5,9,1......
  • 【LBLD】常数时间删除-查找数组中的任意元素
    常数时间删除-查找数组中的任意元素380.O(1)时间插入、删除和获取随机元素classRandomizedSet{private:vector<int>nums;unordered_map<int,int>num2index;public:RandomizedSet(){srand(time(0));}boolinsert(intval){......
  • 查找自己农历生日与公历生日在同一天的年份
    #请先使用命令pipinstallsxtwl安装依赖库后,再执行以下脚本importsxtwlymc=["正","二","三","四","五","六","七","八","九","十","冬","腊"]rmc=[&quo......
  • 查找消耗cpu最高的Java进程
    #!/bin/bashif[-z"$1"];then###1.先找到消耗cpu最高的Java进程###pid=`ps-eopid,%cpu,cmd--sort=-%cpu|grepjava|grep-vgrep|head-1|awk'END{print$1}'`if["$pid"=""];then......
  • linux系统查找文件命令find,xargs
    FIND命令形式:findpathname-options[-print-exec-ok]pathname要查找的路径(.表示当前目录,/表示系统根目录)-print输出-exec 对匹配的文件执行该参数所给出的shell命令-execrm{}\;注意{}和\;之间的空格-ok以一种更为安全的模式来执行shell命令find命令有很多选项或表达式,每一......