堆和堆排序

2016-01-25
阅读 4 分钟
3.8k
在讨论「堆排序」之前,先复习一下「选择排序」。 {代码...} 选择排序的空间效率很高(O(1)),但是时间效率很低(O(N^2)),主要花在了「从剩余元素中找出最小元素」,每次都要遍历剩余的全部元素。 有没有一种数据结构,能够方便的拿到 最小 元素? 如果重写 SelectionSort,改为反向遍历,每次「从剩余元素中找出最大...

为什么 AVL 树只需要 LL,LR,RR,RL 四种旋转?

2016-01-11
阅读 4 分钟
8.9k
问题:为什么 AVL 树只需要 LL,LR,RR,RL 四种旋转? 首先说明一下本文所使用的记号: T(N):以节点 N 为根的树 L(T)、R(T):树T的左右子树 H(T):树T的高度 DH(T):左右子树高度之差,即 H(R(T)) - H(L(T)) |DH(T)|:左右子树高度之差的绝对值 需要旋转的两种情况 给定一棵树 T(1)(当然,它可能也是其它树的子树,不...