算法导论
将自己对算法导论的学习概况总结并用java代码实现分析
程序员小牧之
汲取,分享与成长,我们唯一能做的就是坚持。
展开
-
算法导论第十八章B树之查找,创建,插入分析
原创 2020-04-21 19:16:43 · 131 阅读 · 0 评论 -
算法导论第十七章:摊还分析
一.什么是摊还分析?1.它是一种分析算法的方法,在摊还分析中,我们求数据结构的一个操作序列中所执行的所有操作的平均时间来评价操作的代价。2.这样我们就可以说明一个操作的平均代价是很低的(即使在某个单一操作的代价很高)。3.但摊还分析却不同于平均情况分析,它不涉及概率。但可以保证最坏情况下每个操作的平均性能。二.摊还分析中常用的前两种技术:一.聚合分析利用聚合分析,我们证明对所有n,一个...原创 2020-04-17 15:53:49 · 707 阅读 · 0 评论 -
算法导论第十四章:数据结构的扩展
这章的主要内容是通过红黑树的两个扩展例子掌握如何对一种数据结构在原有基础上进行扩展。来为自己所用扩展一种数据结构大致可以分为4个步骤:1.选择一种基础数据结构.2.确定基础数据结构中要维护的附加信息.3.检验基础数据结构中的基本操作能否维护附加信息4.设计一些新操作一.顺序统计树它是红黑树的一个修改,它可以在 O(lgn) 时间内确定任何的顺序统计量。相比于前面的运用快排思想的顺...原创 2020-04-16 12:43:37 · 359 阅读 · 0 评论 -
算法导论第十三章:红黑树下之删除分析
与n个节点的红黑树上的其他操作一样,删除一个节点要花费O(lgn)时间,但与插入操作相比,删除操作要稍微复杂一点。如果被删除节点是红色的,红黑性质将继续保持,但如果被删除节点是黑色的话,就有可能发生一个或多个红黑性质被破坏的情况。其核心在于,进行删除操作后的红黑树如果不符合其性质,我们如何进行调节。下面结合代码进行讲解:...原创 2020-04-15 15:10:38 · 269 阅读 · 0 评论 -
算法导论:第十三章.红黑树上之插入分析
一.何为红黑树?红黑树是许多平衡(AVL)搜索树中的一种,它可以保证在最坏情况下基本动态集合的操作时间复杂度为O(lgn).但既然它能被分支出来作为一颗单独的树学习,就一定有其特别之处,下面我们了解下一颗红黑树的基本特性:1.节点内容有:color(颜色),key(信息),left(左孩子),right(右孩子),p(父母)2.节点间的连接规则:(红黑树的性质)(1)每个节点的color...原创 2020-04-14 16:23:47 · 252 阅读 · 0 评论 -
《算法导论》第九章.中位数和顺序统计量
一.什么是中位数?在一个n个元素顺序排列的集合中,一个中位数是它所属集合的中点元素。用公式表达中位数的位置就是:1.当n为奇数时:i=(n+1)/2;2.当n为偶数时,有两个中位数:i=n/2 ;i=n/2+1;因此,若不考虑n的奇偶性,中位数总是出现在 :i=(n+1)/2处和i=(n+2)/2处。为了方便起见,下面的内容默认中位数在:(n+1)/2处二.本章主要内容:本章...原创 2020-04-02 20:24:48 · 809 阅读 · 0 评论