随笔分类 - 数据结构与算法汇总
梳理各种数据结构与算法,尤其关注大数据处理相关领域
摘要:平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树平衡二叉树(Balanced Binary Tree)又被称为AVL树(区别于AVL算法,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树等。红黑树 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedge
阅读全文
摘要:转载自:http://dongxicheng.org/structure/red-black-tree/1. 简介红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除等操作。本文介绍了红黑树的基本性质和基本操作。2. 红黑
阅读全文
摘要:转载自:http://www.cnblogs.com/xiao-cheng/archive/2011/10/04/2198972.html定义:一棵空二叉树是AVL树,如果T是非空二叉树,TL和TR分别是其左子树和右子树,则当且仅当TL和TR都为AVL树且|HL-HR|<=1时,T是AVL树。由定义知道一个AVL树的任何节点的左右子树的高度之差不超过1,这是AVL树最基本的特征。AVL树的高度:(固定节点数计算最大高度)记N_h为一棵高度为h的AVL树具有的最小节点数,则最坏情况是它的左右子树的高度不等,一个是N_(h-1)和N_(h-2),从而得到N_h=N_(h-1)+N_(h-2)
阅读全文
摘要:一、简介:伸展树,或者叫自适应查找树,是一种用于保存有序集合的简单高效的数据结构。伸展树实质上是一个二叉查找树。允许查找,插入,删除,删除最小,删除最大,分割,合并等许多操作,这些操作的时间复杂度为O(logN)。由于伸展树可以适应需求序列,因此他们的性能在实际应用中更优秀。伸展树支持所有的二叉树操作。伸展树不保证最坏情况下的时间复杂度为O(logN)。伸展树的时间复杂度边界是均摊的。尽管一个单独的操作可能很耗时,但对于一个任意的操作序列,时间复杂度可以保证为O(logN)。二、自调整和均摊分析: 平衡查找树的一些限制:1、平衡查找树每个节点都需要保存额外的信息。2、难于实现,因此插入和删除操
阅读全文

浙公网安备 33010602011771号