算法
透过窗看月亮
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Frying Hamburgers的问题
Fying Hamburgers:说是一共有n个汉堡需要经过油煎处理,然后有个烤架每次只能放置两个汉堡,每个汉堡的两面都需要油煎,在烤架上对一面进行油煎需要耗时1分钟,不管烤架上放置1个还是2个汉堡。我看的书中给的求解最小油煎时间的算法如下:如果n小于等于2,则把这1个或者2个汉堡放在烤架上两面都油煎就搞定了,耗时2分钟,如果n大于2,则先随机处理两个汉堡,耗时2分钟,然后递归处理剩余的n-2个汉原创 2015-04-24 16:06:17 · 1474 阅读 · 0 评论 -
递归算法与非递归算法效率的一般计算方法
1. 非递归算法 1)首先确定一个参数n来表示输入的大小; 2)分析算法的基本操作,一般在循环的最里层; 3)判断算法需要执行基本操作的次数是否只与n有关,如果它还与其他因数有关,则需要分开考虑算法的最好、最坏、平均情况; 4) 建立一个计算算法需要执行的基本操作的步数的表达式; 5)利用已有的公式和法则,根据之前的表达式得出近似的值,或者至少找到它的界。 2.递归算法翻译 2015-04-21 23:06:24 · 3612 阅读 · 0 评论 -
算法效率分析框架
1. 算法的时间复杂度和空间复杂度都是算法输入大小的函数,T(n) 和 S(n); 2. 算法的时间复杂度根据算法需要执行的基本操作的数量来衡量,算法的复杂度根据算法消耗的额外内存来衡量; 3. 有些算法的效率会因为输入的大小的变化而产生巨大的差异,因此我们需要区别算法的最差、最好和平均效率; 4. 分析算法的效率主要着眼于随着输入大小的增长,算法效率的增长情况。翻译 2015-04-21 20:45:59 · 720 阅读 · 0 评论 -
Lighter or Heavier算法设计
问题:n个银币,n>2,其中有一个是假的,其他的真的重量完全相同,现在有一个天平,但是没有重量砝码,设计算法来得出假的银币是偏轻还是偏重?要求算法复杂度为o(1)。 我的思路: 1. 如果n为奇数,随机取出一个银币,将剩下的n-1个银币平均分为两份, 1a) 如果重量相同,将取出的银币替换两边任意一个,就可以得出结果; 1b) 如果重量不同,不失一般性,取重的一组,银币数量为(n-1)/2原创 2015-04-21 21:51:34 · 439 阅读 · 0 评论 -
算法基础
1. 算法是为了解决一个问题而设计的一系列能在有限时间内执行完的并且没有歧义的指令,算法的输入为算法所能解决的问题的一个实例; 2. 算法可以从两个角度来划分:1)算法解决的问题的种类;2)设计算法的技术; 3. 典型的算法问题:排序、查找、字符串处理、图论问题、组合问题、几何问题、数值问题; 4. 算法很大程度上依赖于数据结构,最为基础的是数据和链接表,基础这两种可以构建更复杂的数据结构:翻译 2015-04-21 20:59:18 · 361 阅读 · 0 评论
分享