插值查找-四大查找算法(三)

python每日算法|实现四大查找算法,生动形象,保证一看就会! python每日算法(8.29):举例教你如何用用python实现四大查找算法(顺序查找、二分查找、插值查找、斐波那契查找)! 阅读详情

思路说明:

1.插值查找算法和二分查找很像,不同的二分查找每次比较的是中间值,而插值插值算法每次比较的是Insert值 比中间值更接近于要找的s值
2.insert推导公式如下
Mid=(left+right)/2=left+(right-left)/2 根据数学公式推导出
Insert=left+(s-a[left])*(right-left)/(a[right]-a[left])

先写一个方法

 public static int insertSearch(int arr[],int s,int left,int right)
    {
        if (left > right || s > arr[right] || s < arr[left]) {
            return -1;
        }
        int insert=left+(s-arr[left])*(right-left)/(arr[right]-arr[left]);
        if (s<arr[insert]){
            return insertSearch(arr, s, left, insert-1);
        }
        else if (s>arr[insert]){
            return insertSearch(arr, s, insert+1, right);
        }
        else{
            return insert;
        }

    }
}

然后测试

   public static void main(String[] args) {
        int arr[]={1,2,4,5,7,8,9};
        int r = insertSearch(arr, 9, 0, arr.length - 1);
        System.out.println(r);
    }

这是结果图

在这里插入图片描述
tips:在数组较为有序的时候 插值查找的效率比二分查找高得多,假如数组数值不是很连续有时候还不如二分查找的效率

采用离散模型搭建永磁同步电机控制系统 永磁同步电机发电系统分为控制器和发电机,通过simulink仿真软件进行发电系统的离散系统仿真。离散搭建仿真,可以更方便的自动代码生成。通过实践经验离散模块搭建,更能加深对整个控制系统的理解。离散系统在矢量控制中经常涉及到上个开关周期的角度,电压,或者预测下个周期的角度,电流,一般都是通过延时模块实现。PWM比较值寄存器被改写后都是使能了预装载,采样后触发计算到比较值生效可以延时0.5个开关周期Ts,也可以延时1个开关周期Ts,可以通过离散系统进行仿真,大大缩短开发周期。 阅读详情

相关推荐

CELF(Cost-Effective Lazy Forward selection)具有成本效益的惰性前向选择算法

CELF(Cost-Effective Lazy Forward selection)算法解析      引言:在社交网络影响力最大化问题的求解过程中,我们往往需要去选择一些目标种子结点作为信息初始传播的源头。贪婪算法在传播效果上的解决可以达到影响的最大化,但是在时间复杂度上面显得确十分糟糕。为此CELF算法应势而生,CELF算法利用了函数次模性的特点,在第一轮选择种子结点时,计算网络中所有节点的边际收益,但将在之后的过程中,不再做网络节点边际收益的重复计算,这相对于传统的贪婪算法,将在时间上得到非常明显的

hahaxq的博客 2478

插值查找的公式推导

插值查找的数学逻辑来自于基于二分查找算法,将查找点的选择改进为自使用选择,可以提高查找效率对于表长较长,而关键字分布又比较的查找表而言,插值查找算法的平均性能要不二分查找好的多。反之,数组中如果分布非常不均匀,那么插值查找未必是很合适的选择插值查找的的代码跟二分查找的类似,只需要修改一下mid的计算方式即可二分查找中mid的查找公式是midlow1/2∗high−low;这个公式就是简单的确定中间值而插值查找中的mid的查找公式是midlowkey−a。

时刻总结 425

FOC无刷电机磁编码器机械角度与电角度自动对齐校准及电机极对数自动获取的方法

本文提出磁编码器机械角度与电角度自动对齐校准方法及电机极对数自动获取方案。通过通直流电流使转子定向,读取机械角度并计算电角度偏移量,实现精确对齐;同时利用低速旋转时检测反电动势过零点次数,结合机械角度变化量自动计算极对数。核心算法包括转子定向、偏移量计算、极对数推导等步骤,并提供了基于STM32的C语言实现代码。该方法适用于工业伺服、机器人等高精度控制场景,需注意负载安全、参数调整和误差处理。两种自动化流程可有效解决电机安装调试中的角度对齐和参数识别问题。

qq_29653575的博客 2497

插值查找公式推导

首先看二分查找的mid = (high+low)/2,可进行变形mid=low+(high-low)/2。 再看插值查找的mid=low+(high-low)*(key-arr[low])/(arr[high]-arr[low])。 细看是不是只是用key在整序列中的占比来代替原来固定的1/2呢 代码和折半查找一模一样,唯独mid的计算方式发生改变。这样的好处在于,对表长较长,且关键字分分布比较均匀,插值查找算法的平均性能要比折半查找要好的多。但是如果表中关键字分布极端不均匀那么插值查找还不如折半查找

Error的博客 959

BLDC方波控制双闭环Simulink仿真模型

无刷直流电机方波控制双闭环Simulink仿真模型搭建详细教程,包括速度PI环、电流PI环、换向逻辑和受控电压源,仿真结果良好。

m0_57458432的博客 6871

ArcGIS小白必看:5分钟搞定shp矢量文件分割(附常见错误排查)

本文为ArcGIS新手详细解析了分割shp矢量文件的四种核心方法:裁剪工具、分割工具、按属性选择导出及ArcPy脚本自动化。重点强调了投影匹配等关键步骤,并提供了常见错误排查指南,帮助用户快速掌握矢量数据分割技巧,提升GIS数据处理效率。

h9j8k7l6m5n的博客 801

插值查找与Fibonacci查找

二分查找改进的两种算法,一种是适合均匀分布数据特点的插值查找,一种是在有序数列中查找数值大的值时有效减少比较次数的Fibonacci查找。两种算法的介绍以及算法实现,性能分析。

2303_80224161的博客 1120

把财务与管理会计装进一张表:读懂 S/4HANA 的 ACDOCA

别慌,这反而是设计所需。只是大量历史上为汇总、加速而建的索引与汇总表被淘汰或改造,很多被兼容视图 compatibility views 替代,通过视图去 ACDOCA 或 ACDOCT 取数,从而保证老代码还能 SELECT 到数据,但失去写权限。它把原来分散在多张表里的信息整合到一起,例如总账、固定资产、物料账、盈利能力分析 CO-PA、成本控制等维度,发布过的资料多次强调这一点。其二,查询必须带上高选择性的条件,尤其是 RLDNR、RBUKRS、GJAHR 这三个维度,能大幅降低列存扫描的代价。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 956

插值查找法

插值查找法又称为插补查找法,是二分查找法的改进版,按照数据位置的分布,利用公式预测数据所在的位置,再以二分法的方式渐渐逼近。使用插值查找法时,假设数据平均分布在数组中,而每一项数据的差距相当接近或有一定的距离比例。插值查找法的公式为: mid=low+((key-data[low])/(data[high]-data[low]))*(high-low) 其中,key是要查找的键值,data[high]、data[low]是剩余待查找记录中的最大值和最小值。假设数据项数为n,其插值查找法的步骤如下: (

weixin_51270766的博客 1341

加速访问Cloudflare的网站的解决方案

本文主要介绍了加速访问Cloudflare的网站的解决方案,希望能对大家有所帮助。通过软件计算得到最快的IP地址的效果图如下图所示,具体解决方案参考下文。 在这里插入图片描述 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

五.EtherCAT开发之STM32F407ZGt6+ LAN9253 外置EEPROM配置数据含义

EtherCAT从站简称ESC,ESC在上电过程中,会自动加载EEPROM中前7个字(1word = 2 byte)到ESC寄存器。ESC寄存器总是可以被EtherCAT主站通过EtherCAT总线访问,无论PDI接口寄存器配置什么值。EEPROM存储器中的前7个字,将决定ESC的工作模式。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 3472

插值查找算法

插值查找算法 插值查找算法又称插值搜索算法,是在二分查找算法的基础上改进得到的一种查找算法。 插值查找算法只适用于有序序列,换句话说,它只能在升序序列或者降序序列中查找目标元素。作为“改进版”的二分查找算法,当有序序列中的元素呈现均匀分布时,插值查找算法的查找效率要优于二分查找算法;反之,如果有序序列不满足均匀分布的特征,插值查找算法的查找效率不如二分查找算法。 所谓均匀分布,是指序列中各个相邻元素的差值近似相等。例如,{10, 20, 30, 40, 50} 就是一个均匀分布的升序序列,各个相邻元素的差值

ccc369639963的博客 3913

SpringBoot系列之实现一个AI聊天助手

本文介绍了基于Spring Boot框架实现的AI聊天助手项目。该项目使用Spring Boot 3.2.3、Spring AI 1.0.0-M5等技术栈,集成DeepSeek-R1-Distill-Llama-8B模型实现智能对话功能。文章详细介绍了项目配置流程、运行方式和核心代码实现,包括ChatMessage模型类和服务类ChatService的关键功能,如消息处理、历史记录管理和AI响应获取等。读者可通过提供的GitHub链接获取完整代码,快速搭建自己的AI聊天应用。

Nicky's blog 1453

图解算法:四大查找算法

目录第一章 顺序查找算法1.1、算法介绍1.2、算法实现第二章 二分查找算法2.1、算法介绍2.2、算法实现第三章 插值查找算法3.1、算法介绍3.2、算法实现第四章 斐波那契查找4.1、算法介绍4.2、算法实现 项目地址:https://gitee.com/caochenlei/algorithms 第一章 顺序查找算法 1.1、算法介绍 顺序查找(Order Search)也称为线形查找,从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值num相比较,若相等则表示查找成功;若扫

轻松的小希 3957

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

四大基本查找算法

查找算法主要有下面几种 顺序查找/线性查找 二分查找/折半查找 插值查找 斐波那契查找 1.线性查找 就是根据对应的元素在其遍历数组中比较,找到则返回,这里便不列出,贴b站老师的图,如下: 2.二分查找 首先将其元素进行排序,使得元素呈顺序出现,定义一个区间[left,right]取中值来进行查找,left = 0, right = length-1; 如果该元素比其(目标值)小就向右 left = middle 进行缩小范围查找,如果中间的元素比其(目标值)大就向左 right =

sdshdutx的博客 1461

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数据结构——四大查找算法(工作必备)

查找算法 在java中,常用的查找有四种 顺序(线性)查找 二分查找折半查找 插值查找 斐波那契查找 1. 线性查找 线性查找是逐一比对,发现有相同值,就返回下标 public static int SeqSearch(int[] arr, int findVal) { for(int i=0; i<arr.length; i++){ if(arr[i] == findVal) return i; } return -1; }

欢迎来到 Baret-H 的博客 1940

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深入剖析四大查找算法:原理、优化与实战

不同的场景对查找效率的要求差异巨大:从无序数组的暴力扫描到有序数组的精准定位,从均匀分布数据的预测式查找到基于黄金分割的优雅分割策略。理解算法背后的数学原理,能帮助开发者在不同场景下灵活选择最优策略,显著提升程序性能。无论是数据库索引设计,还是实时排行榜更新,查找算法的优化都是性能提升的关键!,从数学原理到代码实现,从性能分析到实战场景,带你全面掌握它们的核心思想与优化技巧。

阿新的博客 1128

【查找算法】解析学习四大常用的计算机查找算法 | C++

在数据处理的过程中,能否在最短时间内去找到目的数据,是编程开发人员非常值得关心的一个问题。所谓查找,也被称为搜索,它是指从数据文件中找出满足某些条件的记录。在数据结构中描述算法时习惯用“查找”,而在搜索引擎中找信息或资料时习惯用“搜索”。我们在电话簿中查找某人的电话号码,电话簿就像是数据文件库,而姓名就是去查找电话号码的键值。我们经常使用的搜索引擎所设计的Spider程序(网页抓取程序爬虫)会主动经由网站上的超链接“爬行”到另一个网站,搜集每个网站上的信息并且收录到数据库中,这其中就涉及到了查找算法。

PIONEER 2194

四大查找算法

1 顺序(线性)查找 就是用枚举的思想,把所有的数据拿出来逐一对比,找到即返回 public static int sqeSearch(int[] array ,int value){ for (int i = 0; i < array.length; i++) { if(array[i] == value){ retu...

qq_44962429的博客 435

java实现四大查找算法

7、查找 分类: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 1 线性查找 线性查找的数组可以是无序的 //线性查找 public class SequenceSearchTest { public static void main(String[] args) { int[] array={1,2,6,4,5,9}; in...

qq_40609192的博客 332

java实现四大查找算法(线性查找,二分查找,插值查找,斐波那契查找)

学习笔记--java实现四大查找算法(线性查找,二分查找,插值查找,斐波那契查找)

m0_49342830的博客 582

Java四大查找(二)插值查找

插值查找

m0_73111651的博客 233

JAVA数据结构与算法 09.四大查找算法思路解析和代码实现 【线性查找、二分查找、插值查找、斐波那契(黄金分割法)查找】

JAVA数据结构与算法 09.查找算法 在java中,常用的查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 按照上面的顺序依次介绍 1. 线性查找 算法介绍:最简单的查找,通过遍历集合,匹配数组中数与待查询数value相同的数字,返回下标;匹配失败返回-1。 特点:顺序遍历;不需要数组有序 代码实现: public class SeqSearch { public static void main(String args[]){ int[] arr

NeverGiveUp 374

四大查找方法

@[toc] 查找方法 java 中常用的查找的四种 1.顺序查找 2.二分查找 3.插值查找 4.斐波那契查找 顺序查找 /** * 顺序查找 * * @param arr * @param value * @return */ public static int seqSearch(int[] arr, int value) { //找到返回下标,没找到返回 -1 for (int i = 0;

wangzhijie302的博客 773
上一篇: 二分查找-四大查找算法(二)
下一篇: spring Aop基于注解的配置一篇文章带你快速了解入门
来来爱编程
博客等级 码龄7年 375粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值