在那些免费网站做宣传效果好南沙区做网站

张小明 2026/1/8 18:34:06
在那些免费网站做宣传效果好,南沙区做网站,成都如何做网站,网站 空间地址是什么文章目录第一章 数据结构与算法基本概念1.1 数据结构定义1.2 算法定义1.3 递归与迭代1.3.1 迭代1.3.1 递归1 递归和迭代的思想比较2 调用栈3 尾递归4 递归树5 递归和迭代对比本文记录数据结构与算法的定义#xff0c;递归和迭代的定义和比较#xff0c;下一篇笔记介绍时间复杂…文章目录第一章 数据结构与算法基本概念1.1 数据结构定义1.2 算法定义1.3 递归与迭代1.3.1 迭代1.3.1 递归1 递归和迭代的思想比较2 调用栈3 尾递归4 递归树5 递归和迭代对比本文记录数据结构与算法的定义递归和迭代的定义和比较下一篇笔记介绍时间复杂度和字符编码。第一章 数据结构与算法基本概念1.1 数据结构定义数据结构相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构、散列结构、树形结构和图形结构等。1.2 算法定义算法 求解具体问题的步骤描述代码上表现出来是解决特定问题的一组有限的指令序列。1.3 递归与迭代这一节参考了《hello 算法》的第二章。1.3.1 迭代迭代iteration是一种重复执行某个任务的控制结构。在迭代中程序会在满足一定的条件下重复执行某段代码直到这个条件不再满足。下面以for循环为例求123…100的和。intforLoop(intn){intret0;// 循环求和for(inti1;in;i){reti;}returnret;}1.3.1 递归递归recursion是一种算法策略通过函数调用自身来解决问题。它主要包含两个阶段。递程序不断深入地调用自身通常传入更小或更简化的参数直到达到“终止条件”。归触发“终止条件”后程序从最深层的递归函数开始逐层返回汇聚每一层的结果。而从实现的角度看递归代码主要包含三个要素。终止条件用于决定什么时候由“递”转“归”。递归调用对应“递”函数调用自身通常输入更小或更简化的参数。返回结果对应“归”将当前递归层级的结果返回至上一层。比如下面代码intrecursum(intn){// 1 终止条件if(n1){return1;}// 2 递归调用intretrecursum(n-1)n;coutret retendl;//3 归返回结果returnret;}理解和总结每次递归都开辟一个栈帧开始递的过程然后当n1时结束递的过程开始归归的时候从递的下面一行开始运行比如上面代码中归时每次都执行下面代码程序运行结果/* ret3ret6ret10ret15*/1 递归和迭代的思想比较以123…100为例虽然递归和迭代都能求出这个问题但是这两种完全不同的思考和解决问题的范式。迭代“自下而上”地解决问题。从最基础的步骤开始然后不断重复或累加这些步骤直到任务完成。比如先求123然后再求34…这样的方法最后求出sum() 100.从小数一直累加的方法。递归“自上而下”地解决问题。先将远问题分解为更小的问题这些子问题和原问题有相同的形式。然后再将子问题分解为更小的子问题直到基本情况时停止。比如上面的求和代码中递的过程就是分解子问题() (−1)将100分解为99100, 9899的过程一直分解为12然后开始归。2 调用栈递归函数每次调用自身时系统都会为新开启的函数分配一个栈空间。而迭代只有一个栈空间因此递归比迭代更加消费内存空间。函数调用会产生额外的开销因此递归比循环效率更低。3 尾递归如果函数在返回前的最后一步才进行递归调用则函数可以被编译器优化使其在空间上与迭代相当这中情况称为尾递归。普通递归当函数返回到上一层级的函数后需要继续执行代码因此系统需要保存上一层调用的上下文。求和操作是在“归”的过程中执行的每层返回后都要再执行一次求和操作。尾递归递归调用是函数返回前的最后一个操作这意味着函数返回到上一层级后无须继续执行其他操作因此系统无须保存上一层函数的上下文。inttailRecursum(intn,intret){// 1 终止条件if(n0){returnret;}// 2 递归调用returntailRecursum(n-1,retn);}求和操作是在“递”的过程中执行的“归”的过程只需层层返回。4 递归树当处理与“分治”相关的算法问题时递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列”为例。Question给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, … 求该数列的第 个数字。数列的前两个数字为 (1) 0 和 (2) 1 。数列中的每个数字是前两个数字的和即 () ( − 1) ( − 2) 。代码实现intfib(intn){// 终止条件if(n1||n2){returnn-1;}// 递归调用 f(n) f(n-1) f(n-2)intretfib(n-1)fib(n-2);returnret;}上面代码在函数内递归调用了两个函数这意味着从一个调用产生了两个调用分支这样的递归会产生一个递归树层数为n的递归树以5层为例子。递归体现了“将问题分解为更小子问题”的思维范式这种分支策略至关重要。5 递归和迭代对比为了理解递归过程使用栈来模拟递归的过程intforLoopRecursum(intn){// 1 终止条件stackints;intret0;// 模拟递的过程for(intin;i0;--i){s.push(i);}// 归的过程while(!s.empty()){rets.top();s.pop();}returnret;}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎么弄网站关键词如何分析一个网站

在全球資安威脅持續升溫、企業對主動防禦需求大幅提升的背景下,滲透測試(Penetration Testing) 已成為企業資安策略中不可或缺的一環。CompTIA PenTest(PT0-003) 正是針對此一趨勢所設計的國際級專業認證,專…

张小明 2026/1/7 21:58:29 网站建设

哪个网站可以做一对一老师网站路径

Sketch国际化插件:打破语言壁垒的设计协作革命 【免费下载链接】SketchI18N Sketch Internationalization Plugin 项目地址: https://gitcode.com/gh_mirrors/sk/SketchI18N 你是否曾经因为Sketch的英文界面而苦恼?是否希望与全球设计团队无缝协作…

张小明 2026/1/7 21:58:29 网站建设

网站二级分类呢图网站场建设封面

在人工智能模型持续向大参数规模演进的当下,IBM最新发布的Granite 4.0系列模型却以"小而美"的技术路径引发行业关注。这款融合Mamba-2与Transformer双架构优势的新一代模型家族,通过创新性混合设计与动态专家混合策略(MoE&#xff…

张小明 2026/1/7 21:58:28 网站建设

英文网站建设szjijie网络营销方式论文

Vim 文件跳转与复制粘贴技巧 1. 文件间跳转 在 Vim 中,常规的移动操作只能在单个文件内进行,而跳转功能则可以让我们在不同文件之间切换。Vim 提供了一些命令,能将文档中的关键字变成“虫洞”,让我们快速从代码库的一个部分跳转到另一个部分。同时,Vim 会记录我们的跳转…

张小明 2026/1/7 21:58:31 网站建设

沈阳网站建设定制网站字号

域、组织单位及用户组管理操作指南 1. 域设置修改 在修改域设置时,可使用WinNT或LDAP两种方式。以下是具体操作: - WinNT方式 首先绑定到域 set objDomain = GetObject("WinNT://MyDomain") objDomain.Put "MinPasswordLength", 8 objDomain.Put…

张小明 2026/1/7 21:58:32 网站建设

河南省住房和城乡建设厅网站查证腾讯低代码开发平台

pysnowball:Python股票数据接口完整指南 【免费下载链接】pysnowball 雪球股票数据接口 python edition 项目地址: https://gitcode.com/gh_mirrors/py/pysnowball 在当今数字化金融时代,获取准确、实时的股票数据对于投资者和量化分析师至关重要…

张小明 2026/1/7 14:41:23 网站建设