
平衡树
文章平均质量分 91
creatorx
这个作者很懒,什么都没留下…
展开
-
数据结构-树堆(Treap)
现在给你一个问题,每次右两种操作,第一种操作是向集合中添加一个数x,第二种操作是询问集合中不大于k的最大的数是多少。现在我们不用任何stl里面的容器的情况下,你要怎样解决这个问题呢?一个最暴力的方法是,从一个数组存数,然后每次询问去遍历这个数组,这样每次插入数的时间复杂度是O(1),而查询时间复杂是O(n),所以这种方法对于查询操作比较多时,会很慢.有基础的同学可能会想到用二分去找,但是用二分必须...原创 2018-05-09 09:00:01 · 491 阅读 · 0 评论 -
数据结构-Heap(堆)
好久没有写博客了,感觉学的东西都快忘完了。这几天准备学下平衡树的知识,不过在学习那之前还是先学习一下更为基础的一种数据结构Heap,我们称为堆。先说下什么叫做堆,堆有小根堆和大堆根,首先堆的本质是一棵完全二叉树。跟二叉搜索树的区别在于,二叉搜索树的特点是左子树上的所有节点的值都小于根节点的值,右子树上的所有节点的值都大于根节点的值。然后对于每棵子树,都是一棵二叉搜索树。根据二叉搜索树的定义我们容易...原创 2018-05-06 17:43:26 · 733 阅读 · 0 评论