当前位置: 首页 > news >正文

GESP6级C++考试语法知识(三十四、二叉搜索树(BST)(四、BST的退化))

第四课《长歪的大树——BST退化危机》故事开始魔法图书馆出大事了1、经过前三课。魔法图书馆已经越来越厉害了同学们已经学会BST搜索BST插入BST遍历大家都觉得“BST天下无敌”2、可是有一天……图书管理员爷爷突然哭了“搜索变慢了”3、同学们很震惊“不可能呀”BST不是很快吗4、爷爷说“以前找书只要几秒。”“现在找一本书要跑半个图书馆”5、到底发生了什么今天。我们就来揭开⚔️BST最大的危机⚔️树退化Degenerate第一部分正常的BST长什么样1、先看一棵健康的BST8 / \ 3 10 / \ \ 1 6 142、为什么它快因为每次比较。都能排除一大片3、例如找148 → 10 → 14只走3步4、这棵树像什么像一棵自然生长张开的大树左右都比较均匀。第二部分危险的插入顺序1、有一天。来了几本新书1 2 3 4 5注意它们是按顺序来的2、图书管理员开始插入。插入11插入2因为2 1所以1 \ 2插入33 1 3 2继续右边。结果1 \ 2 \ 3插入4继续右边。1 \ 2 \ 3 \ 4插入5最后1 \ 2 \ 3 \ 4 \ 53、大事不好了树长歪了第三部分什么叫“退化”1、原来的BST8 / \ 3 10像真正的大树2、现在的BST1 \ 2 \ 3像电线杆3、这就叫BST退化4、退化是什么意思原本树慢慢变成链表5、结果会怎样搜索速度大大变慢第四部分为什么会变慢原来找51、正常BST可能8 → 6 → 5很快。2、退化后必须1 → 2 → 3 → 4 → 5一个一个走3、这不就和顺序查找一样了吗4、BST的魔法消失了因为无法“排除一大片”第五部分为什么会退化1、原因其实很简单插入顺序太特殊2、例如1 2 3 4 5每次都往右。3、或者5 4 3 2 1每次都往左。4、树就会越长越歪第六部分平衡思想登场算法国王召开紧急会议1、算法科学家发现真正重要的不只是BST而是“树要平衡”2、什么叫平衡例如4 / \ 2 6 / \ / \ 1 3 5 7左右高度差不多。这就叫平衡树3、为什么平衡很重要因为搜索时每次都能快速缩小范围第七部分生活中的例子例子1图书馆书架1、如果所有书全堆一排。找书很慢。2、但如果分成左边中间右边会快很多例子2猜数字1、如果每次都猜中间会很快。2、如果每次都只猜旁边就会很慢。3、BST也是一样第八部分算法世界的升级后来。算法科学家发明了1、AVL树会自动保持平衡。2、红黑树更强大的平衡树。3、很多生活中的程序地图导航数据库游戏系统都在用第九部分观察实验现场演示。实验1好树插入4 2 6 1 3 5 7形成4 / \ 2 6很平衡。实验2坏树插入1 2 3 4 5 6 7形成1 \ 2 \ 3长歪。然后比较搜索次数第十部分程序演示1、构建退化BST#include iostream using namespace std; struct Node { int val; Node* left; Node* right; Node(int x) { val x; left NULL; right NULL; } }; Node* insert(Node* root, int x) { if(root NULL) { return new Node(x); } if(x root-val) { root-left insert(root-left, x); } else if(x root-val) { root-right insert(root-right, x); } return root; } // 中序遍历 void inorder(Node* root) { if(root NULL) { return; } inorder(root-left); cout root-val ; inorder(root-right); } int main() { Node* root NULL; // 按顺序插入 for(int i 1; i 7; i) { root insert(root, i); } cout 中序遍历 endl; inorder(root); return 0; }2、程序虽然没错输出1 2 3 4 5 6 73、但树已经严重退化第十一部分课堂互动小游戏游戏1谁是健康树老师画两棵树。让孩子判断哪棵平衡哪棵退化游戏2真人长树孩子们按顺序站队1 2 3 4 5会形成“电线杆”。再换顺序4 2 6 1 3 5 7会形成平衡树。孩子会特别直观第十二部分今天重要的思想BST算法也会“变笨”BST不是永远都快。数据的排列方式会影响效率这是需要理解的算法思想。第十三部分本课总结今天学会了什么1、BST可能退化变成“电线杆”2、为什么会退化插入顺序太特殊。3、退化后会怎样搜索变慢。4、重要思想树要平衡5、记住一句重要的话算法不是永远无敌。好的结构才能有好的效率。
http://www.rkmt.cn/news/1414727.html

相关文章:

  • 天津祥和景观工程:和平专业的绿植养护怎么联系 - LYL仔仔
  • 企业低代码选型避坑:选错数字化底层,至少折腾三年
  • 苏州蔷薇吊装搬运:苏州可靠的道路救援公司 - LYL仔仔
  • 从硬编码到多语言:AI辅助下Next.js应用国际化重构实战
  • 换背景底色怎么制作?2026手机修图与PS换底色保姆级教程 - AI测评专家
  • 本地部署开源向量数据库 Weaviate 并实现外部访问
  • 2026年主流降AI率网站横评:亲测8款工具,把AI率稳控在安全线内
  • 高效网盘直链下载助手实战指南:解锁8大网盘全速下载的3个关键技巧
  • 刷了一早上广告,赚了两毛五-2026最火“三三复制+任务电商”,彻底颠覆零撸行业
  • 信号处理老炮儿经验谈:经典谱估计的“分辨率”与“方差”到底怎么权衡?(Welch法实战解析)
  • 2026商务拓展:WordPress网站建设方案全解析
  • 可迪尔(CADAIR)低浓度瓦斯治理全面解析方案分享
  • Windows 10终极优化指南:如何用自动化脚本实现系统瘦身革命
  • MSYS2 Builds Hashes Cygwin Builds Hashes 区别
  • 为Claude Code配置Taotoken后端解决访问限制问题
  • 为什么你的Gemini Go服务响应延迟飙升300%?——实时trace链路分析与4步精准定位法
  • VRM-Addon-for-Blender架构深度解析:从glTF2扩展插件到完整VRM生态的技术实现
  • 如何用Python快速接入Taotoken平台并调用多款大模型
  • 海南美尔居家具:海口KTV金属模块找哪家 - LYL仔仔
  • 游戏自动化技术深度解析:BetterGenshinImpact智能辅助工具架构与实现
  • FGO自动化终极指南:5分钟掌握解放双手的游戏助手
  • 靠谱蒸包设备品牌推荐:蒸包公,智能赋能轻餐饮便民经营 - 中媒介
  • 从Wi-Fi到5G:聊聊PSK和QAM调制在你每天用的网络里到底干了啥(附简易对比)
  • ESP8266与Blynk物联网入门:从零构建手机遥控LED系统
  • 别再只会ping了!虚拟机网络环路导致TTL过期的保姆级排查与修复指南(附VMware NAT模式配置)
  • 5步轻松搞定:在Mac上运行Windows应用的神器Whisky完全指南
  • ArcGIS坐标转换翻车实录:从Excel预处理到空间配准,我踩过的坑你别再踩
  • 惠州黄金上门回收指南:福运来黄金回收价格透明口碑稳 - 黄金回收
  • 5分钟配置macOS预览神器:QuickLook插件完全指南
  • 解锁网页资源捕获:3分钟掌握猫抓浏览器的智能嗅探方案