红黑树也是一种而叉搜索树,因此二叉搜索树的性质红黑树都具有,同时,我们知道为了避免最坏情况下的二叉搜索树(就是高度不平衡的情况)衍生出了AVL树,使其任何节点的左右子树的高度差相差最多1,从而达到平衡,以确保最坏情况下的搜索效率。当然红黑树为了比较好的搜索效率降低了对平衡的要求,但是红黑树仍然具有良好的平衡状态。
AVL树与RB_tree
AVL树也称为高度平衡树,其插入,删除...
分类:
其他好文 时间:
2016-05-12 16:42:22
阅读次数:
363
1、什么是时间复杂度时间复杂度是某个算法的时间消耗,他是该算法所求问题规模n的函数。而渐进时间复杂度是指当问题规模趋向于无穷大时,该算法时间复杂度的数量级。通常我们在计算的算法的时间复杂度为T(n)=O(f(n)).通常我们总是考虑最坏情况下的时间复杂度
常见的时间复杂度有:常数O(1),对数O(logn),线性O(n),O(nlogn),平方O(n^2),k次方O(n^k),指数O(2^n)2、...
分类:
其他好文 时间:
2016-05-12 15:26:17
阅读次数:
156
平衡二叉树:
AVL树属于二叉查找树,在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn),增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。
二叉查找树的查找和插入操作在最坏情况下复杂度为O(N),而AVL树最坏时仍然为O(lgN)。
平衡二叉树(Self-Balancing Bi...
分类:
其他好文 时间:
2016-05-12 12:05:27
阅读次数:
297
二分搜索算法上运用分治策略的典型例子。 给定已排好序的n个元素a[0...n-1],现在要在这n个元素中找出一特定元素x。 首先想到的是用顺序搜索方法,逐个比较a[0...n-1]中元素,直至找出元素x或搜索整个数组后确定x不在其中。这个算法没有很好利用n个元素已排好序这个条件,因此在最坏情况下,顺 ...
分类:
其他好文 时间:
2016-05-10 23:19:34
阅读次数:
226
Problem: cf670d2
Analyse:
经典的二分加贪心模型,我太高估了暴力的复杂度了….
先考虑最坏情况,就是只缺一个物品,而且这个物品缺1e9个,这里面明显需要一个logklogk的算法,
二分答案,然后贪心地去判断,最后要消耗小于k,贪心就满足,注意这里会爆ll,要提前跳出判断函数.
复杂度nlogknlogk.二分闭区间的模板化写法:int l = 0, r = INF...
分类:
其他好文 时间:
2016-05-07 10:35:25
阅读次数:
137
* 为了实现N个数的排序,将后面N-1个数依次插入到前面已排好的子序列中, *假定刚开始第1个数是一个已排好序的子序列。经过N-1趟就能得到一个有序序列。 *****时间复杂度:最好情况O(n),最坏情况O(n^2),平均情况O(n^2). *****空间复杂度:O(1) *****稳定性:稳定 # ...
分类:
编程语言 时间:
2016-05-07 06:32:01
阅读次数:
235
红黑树属于平衡二叉树。它不严格是因为它不是严格控制左、右子树高度或节点数之差小于等于1,但红黑树高度依然是平均log(n),且最坏情况高度不会超过2log(n)。 红黑树(red-black tree) 是一棵满足下述性质的二叉查找树: 1. 每一个结点要么是红色,要么是黑色。 2. 根结点是黑色的 ...
分类:
其他好文 时间:
2016-04-27 12:19:52
阅读次数:
141
首先从简单的开始。(结果从小到大),其中快速排序和选择排序是不稳定的。 1.选择排序 选择排序的优点主要是交换的次数较少,最坏情况下的时间复杂度为O(n2),最好情况下也是O(n2) 2.冒泡排序 冒泡排序在最坏的情况下算法复杂度为O(n2),最好的情况下为O(n) 3.插入排序 插入排序在基本有序 ...
分类:
编程语言 时间:
2016-04-25 06:26:19
阅读次数:
180
排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定插入排序 O(n^2) O(n) O(n^2) O(1) 稳定希尔排序O(n*log(n))~O(n^2) O(n ...
分类:
编程语言 时间:
2016-04-17 14:47:38
阅读次数:
316
前言 前面差不多学习了插入排序、选择排序、冒泡排序、归并排序。这些排序除了归并排序在时间上消耗为:θ(nlgn)外,其余排序时间消耗都为:θ(n2). 接下来要讲的就是两种比较优雅的比较排序算法:堆排序和快速排序。 堆排序最坏情况下可以达到上界:ο(nlgn).快速排序平均情况下可以达到:θ(nlg ...
分类:
编程语言 时间:
2016-04-13 23:51:02
阅读次数:
313