余瑜的博客 余瑜的博客
首页
  • 并发
  • 线程池
  • spring
  • maven
  • 其他
  • redis
  • mysql
  • linux
  • zookeeper
  • docker
  • terminal
  • kong插件开发
  • 资料
  • leetCode-简单
  • blog
  • 其他
关于
GitHub (opens new window)
首页
  • 并发
  • 线程池
  • spring
  • maven
  • 其他
  • redis
  • mysql
  • linux
  • zookeeper
  • docker
  • terminal
  • kong插件开发
  • 资料
  • leetCode-简单
  • blog
  • 其他
关于
GitHub (opens new window)
  • 资料

    • 二分查找法与二叉树
      • 二分查找法
      • 二叉树
        • 平衡二叉树
  • leetCode-简单

  • 算法
  • 资料
余瑜
2019-06-13
目录

二分查找法与二叉树

# 二分查找法

定义: 将记录按有序化递增或递减排列,在查找过程中采用跳跃方式进行查找,即先以有序的中间位置为比较对象,如果要查找的值小于中点元素,则将待查序列缩小为左半部分,否则为右半部分

image.png
从图中可以看出,用了3次就查到了48这个数. 如果是顺序查找则需要8次.

# 二叉树

定义: 在二叉树中,左子树的值总是小于根的值,右子树的值总是大于根的值

image.png
查找方式为先查根,比根小查左子树,比根大查右子树


image.png
如图,这是一个效率很低的二叉树, 二叉树若想最大性能的构造,需要这颗二叉树是平衡的(平衡二叉树)

# 平衡二叉树

定义: 首先符合二叉树的定义, 其次必须满足任何节点的两个子树的高度最大差为1

平衡二叉树的性能比较高,但是简历和维护一个平衡二叉树需要大量的操作
如下图所示, 当用户需要插入一个新的值为9的节点时,需要做如下变动
image.png
如上图向一颗平衡二叉树插入一个新的节点后,平衡二叉树需要做的旋转操作很多, 平衡二叉树多用于内存结构对象中, 维护的开销相对比较小

上次更新: 2021/03/23, 21:01:05

两数之和→

Theme by Vdoing | Copyright © 2018-2022 逆光世间 | 备案号: 京ICP备19016086号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式