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

【数据结构】简单谈一谈二分法和二叉排序树BST查找的比较

二分法查找:
『在有序数组的基础上通过折半方法不断缩小查找范围,直至命中或者查询失败。』
 
二分法的存储要求:要求顺序存储,以便于根据下标随机访问
 
二分法的时间效率:O(Log(n))
 
二分法的空间效率:原地查询 O(1)
 
二分法对应的搜索树是确定的。
 
二叉排序树查找:
『借助二叉排序树进行搜索,但因为所建立的树本身不一定是轴对称的,所以每次比较并不能确保减小一半范围。』
 
二叉树的存储要求:需要树形结构,相比顺序存储需要占用更多的空间,但也有链接型数据结构灵活可拓展的有点。
 
二叉排序树查找的时间复杂度:平均情况下,O(Log(n)),但在单支树的情况下就变成了顺序遍历搜素,复杂度退化为O(n)。
 
二叉树的空间复杂度:因为需要建立排序二叉树,所以空间复杂度为O(n)
 
插入节点的平均时间复杂度为O(LogN),不过这里我们主要谈的是查找,所以其他方面暂且不聊了。后面为了减小时间复杂度,产生了二叉平衡树用于优化二叉树查找。
 
这里有一个经常提到的概念——查找长度,又分为失败查找长度,成功查找长度,即是为了得出查找结果需要进行的元素对比次数,要借助对应搜索树和树高来分析。
 

转载于:https://www.cnblogs.com/learn-to-rock/p/6107118.html

相关文章:

  • 《java与模式》学习系列——代理模式
  • 5种必知的大数据处理框架技术
  • 《java与模式》学习系列——策略模式
  • mysql:字符串转换为日期类型
  • 《java与模式》学习系列——模版方法模式
  • 《java与模式》学习系列——备忘录模式
  • 向量加减法运算及其几何意义
  • 关于 Java 中 finally 语句块的深度辨析
  • Linux 基础(一)
  • Windows 7 应用程序exe图标丢失的修复
  • 算法导论学习笔记——堆排序
  • 让Docker容器使用静态独立的外部IP(便于集群组建)
  • 算法导论学习笔记——插入排序
  • 本地Git仓库与Github远程仓库同步
  • 算法导论学习笔记——合并排序
  • #Java异常处理
  • $translatePartialLoader加载失败及解决方式
  • @angular/forms 源码解析之双向绑定
  • angular2 简述
  • Angularjs之国际化
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • javascript 总结(常用工具类的封装)
  • JS数组方法汇总
  • KMP算法及优化
  • Linux gpio口使用方法
  • PHP的Ev教程三(Periodic watcher)
  • Promise面试题,控制异步流程
  • Unix命令
  • vue-router 实现分析
  • 爱情 北京女病人
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端工程化(Gulp、Webpack)-webpack
  • 区块链技术特点之去中心化特性
  • 如何用vue打造一个移动端音乐播放器
  • 深度解析利用ES6进行Promise封装总结
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我从编程教室毕业
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​linux启动进程的方式
  • ​ssh免密码登录设置及问题总结
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (六)c52学习之旅-独立按键
  • (十八)SpringBoot之发送QQ邮件
  • (四) Graphivz 颜色选择
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (算法)求1到1亿间的质数或素数
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包