第九章:查找 静态查找表: 1.顺序表的查找:顺序查找 从后往前找,0单元设置哨兵 存储形式是顺序表或者是线性链表 查找算法的平均查找长度= 查找成功时的平均查找长度+查找不成功时的平均查找长度 则顺序查找的不成功长度:每个元素不成功的长度都是(n+1),即每次不成功实际上都是跟关键字比较了(n+1 ...
分类:
其他好文 时间:
2019-12-28 00:00:25
阅读次数:
113
AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. ...
分类:
其他好文 时间:
2019-12-27 11:36:38
阅读次数:
83
AVL树 前中后遍历 树的遍历深度和广度 树是一种特殊的图 人脉关系属于图数据结构; 并查集 最小生成树 union find 正常图的遍历用广度也能做,但是速度低; 并查集可以降到logn 数据小的话,可以用一个二维数组 认识就是1,不认识就是0 然后用递归的方式,做一个深度遍历 动态规划 NP问 ...
分类:
其他好文 时间:
2019-12-20 22:26:23
阅读次数:
117
数据结构 树(上) 一、概述 主要内容包含树的基本概念、二叉树(平衡二叉树、完全二叉树、满二叉树)、搜索树(二叉搜索树、平衡搜索树、AVL树、伸展树、(2,4)树、红黑树)、(a,b)树、B树等实际运用的树数据结构 二、基本知识(树的定义和属性) 1、树(非线性数据结构)运用于一些算法实现的效率会比 ...
分类:
其他好文 时间:
2019-12-08 11:01:30
阅读次数:
119
数据结构 树(下) 一、概述 AVL树、伸展树、红黑树搜索树算法保证最坏情况或者一系列操作情况下,搜索、插入和删除的操作的时间复杂度是O(logn)。本文主要内容包含:平衡搜索树中的AVL树、伸展树、(2,4)树、红黑树 和(a,b)树、B树等实际运用的树数据结构。 二叉搜索树的删除 二、AVL树 ...
分类:
其他好文 时间:
2019-12-08 10:56:38
阅读次数:
97
一、AVL 树 在计算机科学中,AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一节点对应的两棵子树的最大高度差为 1,因此它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度都是 O(log(n))。插入和删除元素的操作则可能需要借由一次或多次树旋转,以实现树的重新平衡。 ...
分类:
其他好文 时间:
2019-12-06 00:08:31
阅读次数:
96
AVL树第一部分,(插入) AVL树是一种自平衡二叉搜索树(BST),其中对于所有节点,左右子树的高度差不能超过1。 一个AVL树的示例 上面的树是AVL树,因为每个节点的左子树和右子树的高度之间的差小于或等于1。 一个非AVL树的示例 上面的树不是AVL树,因为 8 和 18 的左子树和右子树之间 ...
分类:
编程语言 时间:
2019-11-19 12:22:42
阅读次数:
70
引入 上一篇写了 "二叉排序树" ,构建一个二叉排序树,如果构建序列是完全有序的,则会出现这样的情况: 显然这种情况会使得二叉搜索树退化成链表。当出现这样的情况,二叉排序树的查找也就退化成了线性查找,所以我们需要合理调整二叉排序树的形态,使得树上的每个结点都尽量有两个子结点,这样整个二叉树的高度就会 ...
分类:
其他好文 时间:
2019-11-06 16:32:37
阅读次数:
89
1,树 树是一种非常重要的非线性数据结构,直观的看,它是数据元素(在树中称为节点)按分支关系组织起来的结构,很像自然界中树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到了广泛应用,如在编译源程序时,可用树表示源程序的语法结构。又如在数据库 ...
分类:
编程语言 时间:
2019-10-21 14:53:18
阅读次数:
147
红黑树与AVL AVL树 二叉搜索树只有保持平衡时其查找效率才会高。 要保持二叉搜索树的平衡不是一件易事。不过还是有一些非常经典的办法可以做到,其中最好的方法就是将二叉搜索树实现为AVL树。 AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 196 ...
分类:
其他好文 时间:
2019-10-02 20:51:29
阅读次数:
123