码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据结构之查找(折半查找/二分查找)


    算法思想

    首先折半查找又称二分查找只针对于有序顺序表
    在这里插入图片描述
    重要思想就是对半分
    把0号位置给一个low
    然后顺序表的最高位赋一个high位
    然后使
    middle=low+high/2
    然后比较
    data[middle]与我们要找的数据的对应大小,大的话就是在middle的右边
    小的话就是在middle的左边
    (如果等于的话就查找的就是middle)

    如果大于middle把low=middle+1
    如果小于就是high=middle-1
    重点-查找数据只能出现在[low,high]之间在这里插入图片描述
    比如图中我们找的是33
    此时33<37
    high=mid-1
    high=7
    data[high]=33
    在这里插入图片描述
    然后mid=(6+7)/2=6
    data[mid]=32
    low=mid+1=7
    在这里插入图片描述
    现在low和high指向同一个元素
    mid=(low+high)/2=7
    然后
    data[mid]=33查找成功
    如果这个不算33是34比如
    那么high=mid-1
    这样的话high=6 low=7
    循环条件失效,查找失败
    在这里插入图片描述

    算法实现

    在这里插入图片描述

    查找效率分析

    在这里插入图片描述

    在这里插入图片描述

    查找判定树的构造

    奇数个元素

    在这里插入图片描述
    当元素的个数奇数个时
    在这里插入图片描述
    然后在找中间的可以一步步切割
    在这里插入图片描述

    偶数个元素

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    结论

    在这里插入图片描述
    右子树的节点要么比左子树节点多一个,要么和左子树相等

    对应练习
    在这里插入图片描述
    就是总是先加到右子树上面
    然后加到左子树上面,且要一级一级考虑
    (就是加完4以后加1的左子树呗,就是3,3肯定也要加到右子树上呗就加个5节点
    这就叫一级一级考虑)
    在这里插入图片描述
    这个折半查找判定树平衡二叉树呗
    那就有个对应的性质
    在这里插入图片描述

    在这里插入图片描述

    用折半查找判定树分析查找效率

    在这里插入图片描述

    总结

    在这里插入图片描述

  • 相关阅读:
    【从零学习python 】70.网络通信方式及其应用:从直接通信到路由器连接多个网络
    【软件测试】APP 上架指南:iOS App Store 首次上架被拒原因分析与解决方案
    Ansible之playbooks剧本
    【HCIE】01.IGP高级特性
    Nginx Rewrite
    Git的高效使用 git的基础 高级用法
    韩顺平0基础学java——第25天
    27、Flink 的SQL之SELECT (窗口函数)介绍及详细示例(3)
    进阶JAVA篇- Date 类与 SimpleDateFormat 类、Calendar 类常用的API(五)
    走进开源,拥抱开源
  • 原文地址:https://blog.csdn.net/y_k_j_c/article/details/127787583
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号