当前位置: 首页 > news >正文

长鳖春遇网站开发广州seo网站推广平台

长鳖春遇网站开发,广州seo网站推广平台,涟水网站建设,如果做夺宝网站一、递归简介 递归算法是一种直接或者间接调用自身函数或者方法的算法。 递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。 递归本质是循环&a…

一、递归简介

递归算法是一种直接或者间接调用自身函数或者方法的算法。

递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。

递归本质是循环,循环推理。

递归是一种数学上分而自治的思想。

A、将原问题分解为规模较小的问题进行处理

分解后的问题与原问题类型完全相同,但规模较小。

通过小规模问题的解,能够轻易求得原生问题的解

B、问题的分解是有限的

当边界条件不能满足时,分解问题(继续递归)

当边界条件满足时,直接求解(递归结束)

二、递归在程序设计中的应用

递归函数:

函数体中存在自我调用的函数

递归函数必须有递归出口(边界条件)

函数的无限递归将导致程序崩溃

使用递归函数时不要陷入递归函数的执行细节,应首先建立递归模型和确立边界条件。

三、递归算法常见的应用场景

1.数据的定义是按递归定义的。如:斐波那契数列
2.问题解法按递归算法实现。如:递归求和
3.数据的结构形式是按递归定义的。如二叉树、广义表等

四、递归使用场景整理

1.树结构中使用递归

C#树结构操作逻辑整理

/// <summary>
/// 地区案例测试
/// </summary>
static void TestArea()
{List<Area> list = new List<Area>() {new Area(){ ID=1,Name="中国",ParentID=null},new Area(){ ID=2,Name="山东",ParentID=1},new Area(){ ID=3,Name="济南",ParentID=2},new Area(){ ID=4,Name="槐荫",ParentID=3},new Area(){ ID=5,Name="千乐微云",ParentID=4},new Area(){ ID=6,Name="市中区",ParentID=3},new Area(){ ID=7,Name="泉城广场",ParentID=6},};//转化为树结构展示var result = getChild(null, list);Console.WriteLine(result.ToJsonString());
}
/// <summary>
/// 递归处理子节点
/// </summary>
static List<Area> getChild(int? parentid, List<Area> source)
{List<Area> result = new List<Area>();//1.获取父节点List<Area> parent = source.Where(q => q.ParentID == parentid).ToList();if (parent.Count > 0){//添加父类对象result.AddRange(parent);foreach (Area item in parent){//循环父节点,获取子节点item.Children = getChild(item.ID, source);}}return result;
}

2.递归求和

/// <summary>
/// 递归求和
/// </summary>
static int Sum(int num)
{if (num == 1)return 1;return num + Sum(num - 1);
}//递归求和
Console.WriteLine(Sum(1));//1
Console.WriteLine(Sum(2));//3
Console.WriteLine(Sum(3));//6
Console.WriteLine(Sum(4));//10

3.递归计算阶乘

/// <summary>
/// 递归阶乘
/// </summary>
static int Factorial(int num)
{if (num == 1)return 1;return num * Factorial(num - 1);
}//递归阶乘
Console.WriteLine(Factorial(1));//1
Console.WriteLine(Factorial(2));//2
Console.WriteLine(Factorial(3));//6
Console.WriteLine(Factorial(4));//24

4.递归实现斐波那契数列

待完善.....

5.递归实现全排列

全排列算法(递归)封装

排列组合算法(递归)1

更多:

C#树结构操作逻辑整理

初学者开发流程_项目开发常见问题

二维码简介_二维码基本概念_二维码基本原理

http://www.shuangfujiaoyu.com/news/50954.html

相关文章:

  • web网站建设方案整合营销方案怎么写
  • 简洁轻便的wordpress主题seo优化中商品权重主要由什么决定
  • 广州建设网站的公司网站优化查询代码
  • 保定聊城网站建设sem优化师
  • 自己电脑做网站空间石家庄seo关键词
  • 自己建网站做那个模块好杭州网站建设技术支持
  • wordpress 加链接地址青岛百度推广优化
  • 一起买买买网站建设大数据统计网站
  • 东莞建设监督网站芜湖seo
  • 商丘网络推广短视频优化
  • 网站建设项目登记表app开发费用一览表
  • 惠州建设厅网站有哪些可以免费推广的平台
  • 成都移动网站建设知乎推广
  • 做网站程序先从哪一步开始外链群发软件
  • 视频网站做app还是h5做百度推广效果怎么样
  • 挣钱最快的小游戏seo营销服务
  • 网站建设项目软件开发招标文件seo网站优化推广教程
  • 网站设计 图片seo概念
  • 广州学校网站建设网络seo哈尔滨
  • 最好的wordpress网站网络营销的特点分别是
  • 做美女网站犯法吗青岛做网站推广
  • 格力网站建设首页百度推广视频
  • 网站建设教程详解长春网站建设模板
  • 白银网站建设今日国际重大新闻事件
  • 做网站asp和asp.net泾县网站seo优化排名
  • 自己如何做网站搜索排名竞价
  • 书店网站建设需求分析调研表营销策划案的模板
  • 政府网站建设长沙百度账户托管公司
  • 如何制作企业的网站国内新闻最新5条
  • 做同城特价的网站企业网站建设报价