Alyiccce 2022-10-25 11:20 采纳率: 0%
浏览 32
已结题

基于二分查找的插值查找公式推导过程的

最近在看插值查找,对于他的公式都是基于二分推导出来的
二分:mid = 1/2(left+right) = left+1/2(right-left)
插值查找:
设定比值为k,查找值为key k=(key - a[right])(a[left]-a[right])
根据二分公式left+1/2(right-left),将1/2替换为k推导而出:mid = left+k(right-left) 其结果简化可得mid = kright+(l-k)left
但如果是根据二分公式:mid = 1/2(left+right),将1/2替换成k却推导而出:mid = k(left+right) 简化可得mid = k
right+k
left
两者都是将1/2替换为k,最终推导出的公式不一样,那么如何确定他的正确性呢?又或者插值公式的正确推导应该是什么样子的呢?

  • 写回答

2条回答 默认 最新

  • 知虚 2022-10-25 11:31
    关注

    mid = left+k(right-left) 其结果简化可得mid = kright+k(l-left) 这一步简化没看懂呀;
    我理解 mid = left+k(right-left) 推导得 mid = left + kright - kleft ,提取公因式,简化得到 mid =kright +left(1-k),不知道对不对。
    二分查找是插值查找特例把,K换成1/2后两者貌似是相同的

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月10日
  • 修改了问题 10月25日
  • 创建了问题 10月25日

悬赏问题

  • ¥15 疾病的获得与年龄是否有关
  • ¥15 关于浏览器控制台js报错问题-swiper.js相关
  • ¥15 opencv.js内存,CPU飙升
  • ¥15 植物重测序snp数据Treemix分析出现问题!
  • ¥15 怎么让当前页面只能有一人在编辑
  • ¥15 UCOSⅢ,3.0.3升级为3.0.4后程序编译成功,但是运行后死在统计任务的地方
  • ¥15 python程序长时间运行卡死,付费求解决方案
  • ¥20 VM打开不了ubuntu虚拟机,如何解决?
  • ¥15 java请求一个返回流式数据的接口,如何将流式数据直接返回前端
  • ¥15 为什么连接不了啊,配置都没问题啊