摘要:
跳表是一个很有意思的数据结构,它实现简单,但是性能又可以和平衡二叉搜索树差不多。 据MIT公开课上教授的讲解,它的想法和纽约地铁有异曲同工之妙,简而言之就是不断地增加“快线”,从而降低时间复杂度。 当“快线”的数量为lgn时,我们就得到了现在的快表——一个类似于平衡二叉搜索树的数据结构。 网上没有比 阅读全文
摘要:
斐波那契堆是一种高级的堆结构,建议与二项堆一起食用效果更佳。 斐波那契堆是一个摊还性质的数据结构,很多堆操作在斐波那契堆上的摊还时间都很低,达到了θ(1)的程度,取最小值和删除操作的时间复杂度是O(lgn)。 斐波那契堆的关键操作我觉得是合并树和级联剪切。下面我简要地说一些关于这两个方法的体会。 斐 阅读全文
摘要:
二叉堆可以看做一个近似的完全二叉树,所以一般用数组来组织。 二叉堆可以分为两种形式:最大堆和最小堆。最大堆顾名思义,它的每个结点的值不能超过其父结点的值,因此堆中最大元素存放在根结点中。最小堆的组织方式刚好与最大堆相反,它的最小元素存放在根结点中。 维护堆性质最重要的两个算法就是向上维护和向下维护。 阅读全文