播客 > 搜索技术  >  算法设计策略与递归技术  | 登录  | RSS订阅地址  | Code平台

算法设计策略与递归技术

  算法设计策略是在设计一个算法的时候所用到的基础知识,一般的来说,一个完整的算法都是由一些细小的小算法构成的。
  我这里把网络上和自己所学的一些知识总结出来,写出来,以备经常学习。
  

递归技术 —— 最常用的算法设计思想,体现于许多优秀算法之中 
分治法 —— 分而制之的算法思想,体现了一分为二的哲学思想 
模拟法 —— 用计算机模拟实际场景,经常用于与概率有关的问题 
贪心算法 —— 采用贪心策略的算法设计 
状态空间搜索法 —— 被称为“万能算法”的算法设计策略 
随机算法 —— 利用随机选择自适应地决定优先搜索的方向 
动态规划 —— 常用的最优化问题解决方法 


  这里先说递归技术
  有很多问题,都是按照一定的规律不断的循环,只到符合某个条件问题中止,例如出名的Fibonacci数列..

  我以下的所有例子都是C#实现的。
  
using System;
using System.Text;

class DemoMain{
    public static void Main(string[] args){
        Console.WriteLine("开始计算Fibonacci数列...");
        for (int i=1;i<13;i++ ){
            Console.WriteLine("F({0})={1}",i,F(i));
        }
    }
    public static int F(int start) {
        if(start<=2)return 1;
        return F(start-1) +  F(start-2);
    }
}


运行输出结果:
开始计算Fibonacci数列...
F(1)=1
F(2)=1
F(3)=2
F(4)=3
F(5)=5
F(6)=8
F(7)=13
F(8)=21
F(9)=34
F(10)=55
F(11)=89
F(12)=144


其实在计算F(n)

if n>2
 return F(n-1) + F (n-2)
else
  return 1;
本话完毕。
天气:大雨,ccdot发表于2008-4-11 11:39:30,阅读了714次,共有个4回复.

文章不错!一直很关注你这位高人,继续。

me post in 2008-4-17 16:28:40 #1  

天才辛苦了,我在这里:-)

bao post in 2008-4-17 16:30:35 #2  

神啊,你真厉害

buzhizhe post in 2008-4-22 11:51:11 #3  

这叫杀鸡就用牛刀.

ccdot post in 2008-4-22 17:15:36 #4  
  1. 想要转载我文章的人滚远远的,能想多远,就滚多远。
  2. 不要提交任何带有网址URL信息的评论.
  3. 需要更多信息?请使用站内搜索,郁闷了?听听我在听什么吧!
用户名:*验证:看不清楚请点击刷新验证码*
内容: