1 Star 0 Fork 0

Wu Wenxiang / training-design-pattern

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Algo.md 1.87 KB
一键复制 编辑 原始数据 按行查看 历史
Wu Wenxiang 提交于 2021-07-08 12:57 . move images from MediaLink to local

排序算法

二分查找树

概念

  • 二叉查找树(Binary Search Tree),也称二叉搜索树
  • 是指一棵空树或者具有下列性质的二叉树:
    • 任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值
    • 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值
    • 任意节点的左、右子树也分别为二叉查找树
    • 没有键值相等的节点
  • 二叉查找树相比于其他数据结构的优势
    • 查找、插入的时间复杂度较低
    • 为O(log n)
  • 二叉查找树是基础性数据结构,用于构建更为抽象的数据结构
    • 集合
    • multiset
    • 关联数组

查找

BST-Search

  • 在二叉搜索树b中查找x的过程为:
    • 若b是空树,则搜索失败,否则:
    • 若x等于b的根节点的数据域之值,则查找成功;否则:
    • 若x小于b的根节点的数据域之值,则搜索左子树;否则:
    • 查找右子树

插入

BST-Insert

  • 向一个二叉搜索树b中插入一个节点s的算法,过程为:
    • 若b是空树,则将s所指结点作为根节点插入,否则:
    • 若s->data等于b的根节点的数据域之值,则返回,否则:
    • 若s->data小于b的根节点的数据域之值,则把s所指节点插入到左子树中,否则:
    • 把s所指节点插入到右子树中。(新插入节点总是叶子节点)

建立

List-BST

转化

BST-List

算法动图

1
https://gitee.com/wu-wen-xiang/training-design-pattern.git
git@gitee.com:wu-wen-xiang/training-design-pattern.git
wu-wen-xiang
training-design-pattern
training-design-pattern
master

搜索帮助