热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

常用的表格查询算法及其应用分析

常见的查找算法1.顺序查找从表的一端开始查找,若在表中找到需要的值,则查找成功。如果整个表都查找过,还没找到值的话,就表示查找失败。2.二分查找这种查找方式前提是表必须是 有序 的。先找到表中间位置的

常见的查找算法

1.顺序查找

从表的一端开始查找,若在表中找到需要的值,则查找成功。如果整个表都查找过,还没找到值的话,就表示查找失败。

2.二分查找

这种查找方式前提是表必须是 有序 的。先找到表中间位置的值与查找值比对。相等的话,查找成功。如果中间位置小于查找值的话,则取后半段的中间值继续进行对比。若中间位置大于查找值的话,则取前半段的中间值继续进行对比。直到找到查找值或者没有查找值为止。

3.分块查找(索引顺序查找)

将一个表分成若干个块,每个块之间有序(左边块中所有关键字都比右边的来得小),块里面不要求有序。并创建一个索引表,存储每个块中的 最大值起始地址 ,然后在索引表中找到比查找值大的值,拿着查找值进去这块查找是否有一样的值。

4.数表查找

在查找的时候,动态生成一棵二叉树。依次读取序列值生成二叉树(将第一个值作为根节点,之后的数一次跟根节点对比,小的放在左边,大的放在右边)。然后再将查找值与根节点进行对比,前者小的话继续在左边进行递归查找,前者大的话继续在右边进行递归查找。直到找到或者没有。

5.哈希查找

序列多长就设定一个多长的有序的哈希表,里面包含哈希地址和指针。将序列中的值都对同一个数值进行取余,余数找到对应的哈希地址,然后用指针指向这个值。让查找数对那个数值进行 % ,然后根据余数找到对应的哈希地址,查看是否有跟查找数一样的值


推荐阅读
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 深入理解父组件与子组件的引用和访问
    本文详细介绍了如何在Vue.js中通过$children和$refs属性实现父组件对子组件的访问,并提供了具体的代码示例及最佳实践。 ... [详细]
  • LeetCode 540:有序数组中的唯一元素
    来源:力扣(LeetCode),链接:https://leetcode-cn.com/problems/single-element-in-a-sorted-array。题目要求在仅包含整数的有序数组中,找到唯一出现一次的元素,并确保算法的时间复杂度为 O(log n) 和空间复杂度为 O(1)。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
author-avatar
手机用户2502897625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有