常见的查询算法

1.  顺序查找                         

数据结构:有序或无序队列,依次对比每个元素   

时间复杂度:O(n)

2.  二分查找(折半查找)

数据结构:有序数组,从中间元素开始查找,等于待查找元素则查找结束;>待查找元素,则从中间元素的左边一半继续二分查找;<待查找元素,则从中间元素的右边一半继续二分查找;直到找到或者数组为空。

时间复杂度:O(lgn)

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

“块间有序”(第一块任一元素小于第二块任一元素,依次类推。。。),“块内无序”,选取各块最大元素值构成一个索引表

查找流程:

       对索引表二分查找/顺序查找,确定待查找元素位于哪一块,再在此块中顺序查找

时间复杂度:O(lg2n)

4. 二叉排序树(左<根<右) 查找

空树则搜索失败;

待查找元素=根节点数据域的值,查找成功

待查找元素<根节点数据域的值,搜索左子数

待查找元素>根节点数据域的值,搜索右子数

数据结构:二叉排序树

时间复杂度:O(lg2n)

5.  哈希散列法

根据key值和哈希函数创建一个哈希表(散列表),根据key值和哈希函数定位数据元素位置,但取决于冲突

数据结构:哈希表
       时间复杂度:几乎是O(1)   ,冲突另算

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值