算法设计
文章平均质量分 79
GrazyThinking
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
漫谈算法(一)如何证明贪心算法是最优 using exchange argument
这里主要是介绍一种证明贪心算法是最优的一种方法:Exchange Argument (不知道应该怎么翻译到中文,交换参数?感觉听起来挺别扭的,不像是一个方法的名字~o(╯□╰)o)Exchange Argument的主要的思想也就是 先假设 存在一个最优的算法和我们的贪心算法最接近,然后通过交换两个算法里的一个步骤(或元素),得到一个新的最优的算法,同时这个算法比前一个最优算法更接近于我们转载 2014-10-22 16:17:34 · 1048 阅读 · 0 评论 -
漫谈算法(零)序
学期选了一门算法课(CS2510),搞的人死去活来,因为作业实在多的让人XX,每周3次作业从来没断过,而且都很难。。。。同时我们老师据说是北美算法界得重要人物,上课思路奇快,不用PPT,不用稿子,一支笔,在黑板上刷刷刷,加之英语,搞得我时常跟不上。。。怨念。。。不过还是学到了很多东西,基本cover了算法导论里面的各个内容。受益匪浅。准备写一些对基本算法知识的介绍。同时也权当是自己复习了。转载 2014-10-22 16:35:03 · 639 阅读 · 0 评论 -
漫谈算法(二) 动态规划 Dynamic Programming
动态规划,Dynamic Programming。这里的programming没有翻译成编程,是因为,这里的programming的意思是指一个tabular method。其实这也暗示了DP的本质,用一个table保存子问题的中间结果。(后面会有例子具体介绍)和分治算法比较类似,但不同的是分治算法把原问题划归为几个相互独立的子问题,从而一一解决,而动态规划则是针对子问题有重叠的情况的一种转载 2014-10-22 16:32:32 · 838 阅读 · 0 评论 -
漫谈算法(四)分治算法 Divide and Conquer Algorithm
先看一段来自wikipedia的定义:http://en.wikipedia.org/wiki/Divide_and_conquer_algorithmDivide and conquer (D&C) is an important algorithm design paradigm based on multi-branched recursion. A divide and conqu转载 2014-10-22 16:37:49 · 1188 阅读 · 0 评论 -
贪心算法(GREEDY ALGORITHM)证明实践
基础概念贪心算法Formal的解释这里就不介绍了,有兴趣的直接去wikipedia上理解。简单地来说,贪心算法就是在某种规律下不断选取局部最优解,从而达到全局最优。《挑战程序设计竞赛》中有一个很直观的解释:一直向前!证明方法既然贪心算法是利用规律选取局部最优解,那么我们选取规律所得出的全局解就不一定是全局最优解。因此,我们需要证明,我们所选这个规律是可以得出一个全局转载 2014-10-22 19:04:14 · 7190 阅读 · 0 评论 -
时间的复杂度和空间的复杂度
学习数据结构时,觉得时间复杂度计算很复杂,赶紧恶补一下吧:首先了解一下几个概念。一个是时间复杂度,一个是渐近时间复杂度。前者是某个算法的时间耗费,它是该算法所求解问题规模n的函数,而后者是指当问题规模趋向无穷大时,该算法时间复杂度的数量级。当我们评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度,因此,在算法分析时,往往对两者不予区分,经常是将渐近时间复杂度T(n)=O(f转载 2014-10-11 23:02:42 · 803 阅读 · 0 评论 -
漫谈算法(三)NP问题
首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题。看下面的图,他们之间的关系表示的比较清楚。P Problem:这个应该最易理解,就是一个问题可以在Polynominal的时间的得到解决,当然,是对于任意input size。NP Problem:对于一类问题,我们可能没有一个已知的快速的方法得到问题的答案,但是如果给我们一个candidate an转载 2014-11-01 21:46:19 · 1331 阅读 · 0 评论
分享