
查找
heda3
拥有超过10年的嵌入式开发经验,新一代信息技术工程师/人工智能博士,已申请发明专利15项,其中8项成功获批授权,并在中英文期刊上发表多篇高水平学术论文。在嵌入式系统、算法开发与技术管理领域,积累了丰富的实践经验,并持续在技术社区分享在嵌入式驱动、操作系统、上位机软件、算法优化等开发过程中遇到的关键问题、创新解决方案以及深刻的技术洞察。持续跟随行业前沿,探索嵌入式开发中的最新动态与突破性技术,共同推动技术进步与创新!
展开
-
查找-之散列表/哈希表
问题:前面的查找不可避免的要进行比较,是否能直接通过关键字key得到要查找的元素位置?解决方法:散列技术通过记录的存储位置和关键字建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)f为散列函数/哈希函数散列表/哈希表(Hash table)--采用散列技术实现数据存储的一块连续的存储空间散列过程:1)存储时,散列函数计算数据的散列地址,并...原创 2020-02-04 23:34:10 · 388 阅读 · 0 评论 -
查找-之多路查找树
二叉排序树或平衡二叉树(AVL树、红黑树)查找-之二叉排序树(查找、插入、删除)查找-之平衡二叉树AVL和红黑树结点只有两个孩子,且结点只能存储一个元素问题:一个结点只存储1个元素,在元素很多时,使得树的深度或高度很大 出现的问题是:内存存取外存的次数非常多-使得时间效率降低解决方法:2-3树结构:1970年 约翰·霍普克洛夫发明的多路查找...原创 2020-02-04 20:33:30 · 356 阅读 · 0 评论 -
查找-之平衡二叉树AVL和红黑树
在上一篇文章查找-之二叉排序树(查找、插入、删除)引出的问题是:二叉排序树的存在的不足是插入新结点导致树不平衡,不平衡树使得查找性能下降解决方法构建平衡的二叉树AVL树、红黑树AVL树:带有严格平衡条件的二叉查找树,用平衡因子差值判断树是否平衡并通过旋转实现平衡,左右子树的高度不超过1适用于:插入和删除次数较少(插入删除操作使得树失去平衡,为维持严格平衡旋转操作,使得性...原创 2020-02-04 18:11:39 · 347 阅读 · 0 评论 -
查找-之二叉排序树(查找、插入、删除)
问题:有序的线性表采用:折半/二分、插值、斐波那契查找相比顺序查找效率得到提高,但是在插入和删除时效率低(为维持数据的有序性)在高效实现查找操作时,如何提高插入和删除的效率?在一些应用场景:在查找时需要插入和删除解决方法:二叉排序树二叉排序树特点1)若左子树不为空,左子树上所有结点的值均小于或等于它的根节点的值2)若右子树不为空,右子树上所有结点的值均大于...原创 2020-02-04 17:22:39 · 3264 阅读 · 0 评论 -
查找-之线性索引查找
针对场景:博客网站论坛的帖子回复、服务器日志记录数据量大,每条记录无法做到有序排列记录解决方法:索引---把关键字和它对应的记录相关联的过程索引分类:线性索引、树形索引、多级索引线性索引:将索引项集合组织为线性结构---索引表线性索引包括:稠密索引、分块索引、倒排索引稠密索引结构:索引项---对应---记录索引项是有序的、记录数据表可以是无序的...原创 2020-02-04 16:50:10 · 361 阅读 · 0 评论 -
查找-之有序表查找
待查找的表是有序排列的解决的方法1:折半查找/二分法查找其中线性表采用的是顺序存储//Cint Binary_Search(int *a,int n,int key){ int low,high,mid; //边界的界定 low=1; high=n; while(low<=high) { mid=(low+high)/2 if(key<a[m...原创 2020-02-01 13:38:44 · 316 阅读 · 0 评论 -
查找-之顺序表查找-(数据的排列无序)
查找--摘要静态查找表:只做查找操作的查找表动态查找表:在查找过程中还做插入和删除数据元素的操作查找时可改变数据元素之间的关系以获得较高的查找性能,将查找集合组织成表、树结构。也即是从数据的存储方式作出改进。还有从算法层面做出改进:二分、插值、斐波那契查找等顺序查找:线性查找,从表的第一个逐个开始和待查找元素比较,直到最后一个(暴力破解)//C//a为待查数...原创 2020-02-01 11:55:02 · 1177 阅读 · 0 评论