摘要: 原创翻译加学习笔记,方便国人学习算法知识! 原文链接http://www.geeksforgeeks.org/a-time-complexity-question/ fun()的时间复杂度是多少?假设log(x) 是以2为底的 这份函数的时间复杂度可以写作Θ(log 1) + Θ(log 2) + 阅读全文
posted @ 2016-04-08 15:28 贴纸 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 是不是所有的计算问题都可以用计算机解决? 什么是 P, NP, NP-complete, NP-Hard 问题? 什么是归约? 怎么样证明一个问题是不是NP-complete? 第一个被证明的NP-complete的问题是什么? 阅读全文
posted @ 2016-04-08 09:14 贴纸 阅读(6426) 评论(0) 推荐(0) 编辑
摘要: 什么是伪多项式? 伪多项式和NP完全问题 阅读全文
posted @ 2016-04-07 07:48 贴纸 阅读(3980) 评论(0) 推荐(0) 编辑
摘要: 空间复杂度(space complexity)和辅助空间(auxiliary space)经常混用 阅读全文
posted @ 2016-04-07 06:04 贴纸 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 当偶尔一切操作很花的时间很慢,而大多数操作的时间都很快的时候,平摊分析的方法就很很好用了。在平摊分析中,我们分析一串操作并且可以得到最坏情况下的平均时间复杂度。例如hash table, disjoint set 和splay tree都是用平摊分析算法的。 举一个简单的hash table的插入算 阅读全文
posted @ 2016-04-06 17:47 贴纸 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 1.置换法 substitution method: (叫假设法比较合适) 2.递归树的方法Recurrence Tree Method 3.主定理 master method 阅读全文
posted @ 2016-04-06 13:14 贴纸 阅读(1015) 评论(0) 推荐(0) 编辑
摘要: 之前我们讨论了渐进分析,最佳最坏平均情况的分析以及渐进符号。在这一篇中我们分析一下迭代的简单程序。 1. O(1): 如果程序中没有包含任何的循环,递归或者任何的非常数时间的函数,我们就说这个程序的时间复杂度为O(1)。例如简单的swap()函数就是O(1) 这个程序也是O(1)因为C是常数。所以整 阅读全文
posted @ 2016-04-06 08:40 贴纸 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 我们已经简单的讨论了下渐进分析以及最坏,平均和最佳情况的分析。渐进分析的主要思想是分析算法的效率,不用依靠计算机的具体快慢,不需要实现这个算法,也不需要真正去计算时间。渐进记号是一种数学的工具来表示渐进分析算法的时间复杂度。下面列出三种最常用的渐进符号来表示算法的时间复杂度。 theta 符号是用来 阅读全文
posted @ 2016-04-05 17:26 贴纸 阅读(1041) 评论(0) 推荐(0) 编辑
摘要: 算法最坏,平均和最佳情况 worst case, average case and best case translate from GeeksforGeeks 阅读全文
posted @ 2016-04-05 08:49 贴纸 阅读(5514) 评论(0) 推荐(0) 编辑
摘要: Analysis of Algorithms from GeekforGeeker 翻译 阅读全文
posted @ 2016-04-03 12:18 贴纸 阅读(416) 评论(0) 推荐(0) 编辑