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

建设网站写需求分析济南网站优化分析

建设网站写需求分析,济南网站优化分析,内蒙古网站建设 阿里巴巴,德清网站建设递归的定义 大名鼎鼎的递归#xff0c;相信你即使没接触过也或多或少听过#xff0c;例如汉诺塔问题就是运用了递归的思想#xff0c;对于一些学过c语言的同学来说#xff0c;它可能就是噩梦#xff0c;因为我当时就是这么认为的#xff08;不接受反驳doge#xff09; …递归的定义 大名鼎鼎的递归相信你即使没接触过也或多或少听过例如汉诺塔问题就是运用了递归的思想对于一些学过c语言的同学来说它可能就是噩梦因为我当时就是这么认为的不接受反驳doge 递归到底是什么捏递归是一种解决问题的思想它将复杂的问题转换为无数嵌套的小规模同逻辑问题可以简化代码使问题易于理解,要理解递归一定要先理解递归函数 递归函数 一个直接或间接调用自己的函数就是递归函数 递归函数一定包括递归条件和基线条件递归条件就是调用自己的条件基线条件则是结束递归的条件 ⭐太抽象了直接通过代码理解把  递归实现阶乘 public class recurrence {public static void main(String[] args) {//递归函数调用 factorial(4);//执行步骤://递归中的 递// 1. 求factorial(4)// return 4 * factorial(3) 由于factorial(3)未知故该问题需先求解factorial3// 2. 求factorial(3)// return 3 * factorial(2) 同上由于factorial(2)未知问题又转换为求factorial(2)// 3. 求factorial(2)// return 2 * factorial(1) 同上由于factorial(1)未知问题又转换为求factorial(1)// 4. 求factorial(1) // factorial(1)满足n 1满足基线条件递归的 递 结束开始进行 归 ,故factorial(1) 1// 5. 由于factorial(1)1得解故factorial(2)继续执行return 2即factorial(2)2// 6. factorial(2)2故factorial(3)6可解// 7. factorial(3)6故factorial(4)24可解// 8. 递归的 归 结束函数结束}public static int factorial(int n){//基线条件if(n1){return 1;}else{ //递归条件return n*factorial(n-1); }} } 细品应该不难理解知识输入完毕开始输出知识下面进入递归的应用吧 数组的正反遍历 public static void ergodic(int[] arr ,int index){//正向遍历 由递遍历System.out.println(arr[index]);//递归 if(index arr.length-1 0 index) { //递归条件ergodic(arr , index1);}//反向遍历 由归遍历System.out.println(arr[index]);} 使用 ergodic(new int[]{1,2,3,4,5},0); 结果 二分查找 不熟悉二分查找的可以看详解二分查找(Java) public static int binarySearch(int[] arr, int target ,int l ,int r){if(l r){return -1;}int mid(l r)1; //右移运算效果为 /2if(arr[mid]target){return binarySearch(arr,target,mid1,r);}else if(target arr[mid]){return binarySearch(arr,target,l,mid-1);}else{return mid;} } 冒泡排序优化版 public static void bubbloSort(int[] arr , int arrSize){int greatLeftarrSize-1;for (int i 0; i arrSize-1; i) {if(arr[i] arr[i1]){int temp;temparr[i];arr[i]arr[i1];arr[i1]temp;greatLefti; //最后置换的位置可视为未排序的尾结点因为后面没有置换说明后面是有序的不需要再冒泡了}}if(greatLeft!arrSize-1){bubbloSort(arr , arrSize);} } 插入排序 public static void insertSort(int[] arr ,int low){if(lowarr.length){return ;}for (int i low; 0 i; i--) {if(arr[i-1]arr[i]){int temparr[i];arr[i]arr[i-1];arr[i-1]temp;}else {break;}}insertSort(arr,low1); } 多路递归 实现斐波那契数列 //斐波那契数列public static int fibonacci(int n){if(n 0){return 0;}else if(n 1){return 1;}return fibonacci(n-1)fibonacci(n-2);} 优化斐波那契 //(优化记忆斐波那契数列public static int fibonacci(int n ){int[] arr new int[n1];Arrays.fill(arr,-1);arr[0]0;arr[1]1;return f(n ,arr);}private static int f(int n , int[] arr){if(arr[n]!-1){return arr[n];}int valuef(n-1,arr)f(n-2,arr);arr[n]value;return value;}尾递归  尾递归就是最后语句是函数调用语句的递归函数尾递归可以使部分编程语言Scala , C编译器对爆栈递归的进行优化可由递归调用变为平级调用提前释放栈内存 Java不可实现故应避免较深的递归调用而使用循环替代 分析递归的时间复杂度 主定理 其中 a为子问题数       1/b为问题规模是原来的多少倍        fn为其他项时间复杂度
http://www.w-s-a.com/news/171209/

相关文章:

  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好
  • 站长工具大全企业网上书店网站建设设计
  • 做网站的专业公司公司网站是做的谷歌的
  • 做网站前期工作wordpress图片并排
  • 免费注册网站哪个好wordpress评论修改
  • 合肥模板网站建设软件赤峰公司网站建设
  • 毕业设计都是做网站吗深圳网站制作企业邮箱
  • 网站排名 优帮云小规模公司简介怎么写
  • 那个做头像的网站好选择手机网站建设
  • 设计一个网站花多少时间做视频网站适合用什么服务器
  • asp网站开发环境订单系统单页面网站怎么做
  • 山东网站建设都有那些企业推广策略
  • 网站开发文档是什么概念衣服销售网站建设规划书范文
  • 中国建筑装饰网官网企业网站设计优化公司
  • 南海建设工程交易中心网站c2c交易平台有哪些?
  • 有没有专业做网站架构图的软件番禺建设网站哪个好
  • 建立网站第一步整站seo优化公司