插值搜索

✍ dations ◷ 2025-09-08 20:40:31 #插值搜索

插值搜索法(Interpolation search)是利用插值公式来计算猜测搜索键值的位置。搜索方式与二分搜索相同。

插值公式:

插值 = (设算数 -­ 最小数) / (最大数 -­ 最小数):

搜索键值 = left + parseInt( ( key - data ) / ( data - data ) )*( right - left ) )

插值搜索之算法与二分搜索算法几乎完全相同,差别在:

二分搜索法:猜测键值在中间位置(middle)

插值搜索法:用插值公式计算键值位置

二分搜索在一般的情况下时间复杂度是对数时间,进行 O ( log n ) {displaystyle O(log n)} 次比较操作( n {displaystyle n} 在此处是数组的元素数量, O {displaystyle O} 是大O记号, log {displaystyle log } 是对数)。

插值搜索的最坏时间复杂度是 O ( n ) {displaystyle O(n)} ,平均进行 O ( log ( log n ) ) {displaystyle O(log(log n))} 次比较操作。因为用插值公式计算搜索键值,能使搜索范围比二分法更快缩小。所以除非输入数据数量很少,否则插值搜索比二分搜索与线性搜索更快,但数组必须事先被排序。无论对任何大小的输入数据,插值搜索算法使用的空间复杂度一样是 O ( 1 ) {displaystyle O(1)}

JS code:

相关

  • 藻类学藻类学(Phycology或algology),属于内容是关于藻类的研究。藻类学是生命科学的一个分支,通常被视为植物学的一个分支学科。多数藻类是生存在潮湿的环境里的真核生物,能行光合作用
  • 乔治·汤姆孙乔治·汤姆孙爵士,FRS(英语:Sir George Paget Thomson,1892年5月3日-1975年9月10日),又称G. P .汤姆孙,英国物理学家,英国皇家学会会员,1937年因电子衍射实验和克林顿·戴维森共同获得
  • 布哈拉汗国坐标:39°46′40″N 64°24′39″E / 39.77778°N 64.41083°E / 39.77778; 64.41083布哈拉(乌兹别克语:Buxoro)是位于乌兹别克斯坦西南部的一座城市,也是该国第五大城市和布哈拉
  • 广岛原子弹爆炸广岛市原子弹爆炸事件,是在第二次世界大战末期,由美国总统杜鲁门下令发动,美国陆军航空军于1945年8月6日上午8时15分(日本时间)在日本广岛市投下原子弹的历史事件,这是人类历史上
  • 马尔堡公国),是1993年于澳洲昆士兰省洛坎普顿短暂成立的一个私人国家,奉行君主专制,使用的货币是澳洲元。该国位于22°30′18.19″S 149°9′6.45″E / 22.5050528°S 149.1517917°E / -2
  • 托马斯·卡尔托马斯·卡尔(英语:Thomas Cale;1848年9月17日-1941年2月3日),是一位无党籍的政治人物,曾在1907年至1909年担任阿拉斯加领地众议院议会代表。卡尔在佛蒙特州齐坦丹县昂德希尔(英语:Un
  • 罗伯特·肯尼克特小罗伯特·查尔斯·肯尼克特,FRS(英语:Robert Charles Kennicutt, Jr.,1951年9月4日-),美国天文学家,剑桥大学天文研究所Plumian天文学教授 。肯尼克特曾担任天体物理学杂志的总编辑
  • 郑承宪郑承宪(?-?),明朝万历年间顺天府大兴县人。他的女儿是万历朝的郑贵妃。郑承宪骄奢淫逸,为非作歹。万历十六年六月,御史陈登云弹劾他:“承宪怀祸藏奸,窥觊储贰。日与貂珰往来,绸缪杯酌,且
  • 击穿电压击穿电压,是使某一绝缘介质在一段时间内成为导体所需加入的电压的最低值。当加于某一绝缘介质的电压足够高时,这时该绝缘介质便会发生电击穿,使电流可以通过。一股突发的电流可
  • B612 (应用程序)B612是LINE公司旗下的一款美容修图应用程序。于2014年8月13日正式推出iOS版本,之后适用于Android及Windows Phone的版本陆续推出。2015年6月下载量破五千万,截至2017年1月下载量已突破三亿。其名称取自小说《小王子》中的B612星球。B612应用程序的主要功能包括基本的拍照、录影,以及照片后制的动态滤镜、变脸特效及照片拼贴,总共内置200多种可根据脸部表情而产生不同特效的动态贴图、100多种滤镜、拼贴。