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

折半查找

时间:2023-05-11 21:01:25浏览次数:32  
标签:折半 min int max KeyType mid SSTable 查找

#include <iostream>

using namespace std;

#define MAXSIZE 50

typedef int KeyType;

typedef struct { KeyType key; } ElemType;

typedef struct { ElemType *R; int length; } SSTable;

void Create(SSTable &T) { int i; T.R=new ElemType[MAXSIZE+1]; cin>>T.length; for(i=1;i<=T.length;i++) cin>>T.R[i].key; }

int Search_Bin(SSTable T, KeyType k);

int main ()

{ SSTable T;

KeyType k;

Create(T);

cin>>k;

int pos=Search_Bin(T,k);

if(pos==0) cout<<"NOT FOUND"<<endl;

else cout<<pos<<endl;

return 0;

}

int Search_Bin(SSTable T, KeyType k)
{
int min=1,max=T.length;
int mid=(min+max)/2;
while(max>=min)//折半查找循环,左右边界作为循环条件比(1)循环运行效率高;
{
if(k==T.R[mid].key)
break;
else{
if(k>T.R[mid].key)
{ min=mid+1;
mid=(min+max)/2;
}
else
{
max=mid-1;
mid=(min+max)/2;
}
}
}
if(min<=max)
return mid;
else
return 0;
}

 

标签:折半,min,int,max,KeyType,mid,SSTable,查找
From: https://www.cnblogs.com/djcf/p/17392226.html

相关文章

  • python异步字符串查找,asyncio和marisa_trie
     自然语言处理当中经常需要字符串的查找操作,比如通过查找返回字串在文本当中的位置,比如通过匹配实现的nerimportpandasaspdimportasyncio#data=pd.read_csv("guba_fc_result_20230413.csv")data=pd.read_csv("guba_all_post_20230413.csv")filename="cate_gr......
  • 华为OD机试 查找充电设备组合
    最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单 https://dream.blog.csdn.net/article/details/128980730华为OD机试真题大全,用Python解华为机试题|机试宝典 https://dream.blog.csdn.net/article/details/129221789【华为OD机试】全流程解析......
  • 查找命令 (which 、 find )----grep 、 wc 和管道符,echo ,反引号 `
    which命令通过which命令,查看所使用的一系列命令的程序文件存放在哪里find命令按文件大小查找文件语法:find 起始路径 -size 【(+,-)k,m,g  】•+、-表示大于和小于•n表示大小数字•kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB•用于查找指定的文件findfind ......
  • 模板元编程实战--TypeList算法--查找
    从一个类型列表中查找是否包含某一个类型。要从一个类型列表中查找,那么首先要获得每一个类型,然后与特定的类型比较,然后将结果保存起来。首先考虑一下Elem应该如何实现。Elem将会展开参数列表,然后处理,这里使用之前演示Fold高阶函数回调处理:template<TLIn,typenameT>clas......
  • 二分查找和二分答案模板
    1、二分查找关于二分查找主要有三种模板模板1结束条件为l+1==r查找最后一个<=x数的下标(最大化查找,可行区在左侧)intfind(intx){ intl=0,r=n+1;//开区间,数据存储下标为1~nwhile(l+1<r){ intmid=l+r>>1; if(a[mid]<=x)......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。第一章 数组part01
    今天开始第一天,其实之前也刷过题,也写过博客,可是没有坚持下去;主要是没有动力吧,我又是一个严重的拖延症患者,还好遇到刷到Carl哥的视频,记得是在bilibili分享的二分法视频,感觉讲的挺好的,就加了微信;然后发现有刷题训练营,太适合我这种人了,果断加入,哈哈,废话不多说,开始刷题。  第......
  • 折半查找(二分)
    一、问题描述N个有序整数数列已放在一维数组中, 利用二分查找法查找整数m在数组中的位置。若找到,则输出其下标值:反之,则输出“Not be found!"。二、问题分析二分查找法(也叫折半查找)其本质是分治算法的一种。所谓分治算法是指的分而治之,即将较大规模的问题分解成几......
  • 9折半查找
    #include<stdio.h>voidMy_sort(intarr[],intsz){ inti=0; intj=0; for(i=0;i<sz-1;i++) { for(j=0;j<sz-i-1;j++) { if(arr[j]>arr[j+1]) { intt=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; } }......
  • 3、查找表相关问题
    1、两类查找问题2、两个数组的交集349-两个数组的交集......
  • 为啥我的Python这么慢 - 项查找 (二)
    根据那篇文章改了两处写法,如下(存储于readFaJoin2.py文件中):fromcollectionsimportdefaultdictaDict=defaultdict(list)forlineinopen("GRCh38.fa"):ifline[0]=='>':key=line[1:-1]else:aDict[key].append(line.strip())......