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

徐家汇做网站资讯门户类网站有哪些

徐家汇做网站,资讯门户类网站有哪些,俄罗斯军事新闻最新消息,中国多少个省份31个省现场保护和现场恢复 文章目录 分治策略分治法解决问题有以下四个特征:分治法步骤: 递归:解决以下问题:倒序输出整数求最大公约数(递归和非递归)菲波那切数列 不要尝试间接 要使用直接递归(自己调用自己&am…

现场保护和现场恢复

文章目录

  • 分治策略
    • 分治法解决问题有以下四个特征:
    • 分治法步骤:
  • 递归:
    • 解决以下问题:
      • 倒序输出整数
      • 求最大公约数(递归和非递归)
      • 菲波那切数列

不要尝试间接
要使用直接递归(自己调用自己)

分治策略

分治法解决问题有以下四个特征:

  1. 该问题的规模小到一定程度就容易解决。
  2. 把大问题分解成小问题,是将问题的规模变小,而不是将问题变小
  3. 使用小规模的解,可以合并,该问题原规模的解
  4. 该问题所分解的各个子模块是相互独立的。

分治法步骤:

在分治策略中递归地求解一个问题,在每层递归中有如下解决步骤:
分解:递归地求解子问题,子问题地形式与原问题一样,只是规模更小。
解决:递归地求解子问题,如果子问题地规模足够小,则停止递归,直接求解
合并:将小规模地解组合成原规模地解

递归函数分为 递推递归两个过程
每当调用发生:就要分配新的栈帧(形参数据,现场保护,局部变量);而与普通函数调用不同,由于递推是一个逐层调用的过程,因此存在一个连续的分配栈帧的过程,直至遇到递归终止条件时,才开始回归,这时才会释放栈帧空间,返回到上一层,直到返回到主调函数。

  • 简单的函数调用过程:
    请添加图片描述

请添加图片描述

递归:

空间复杂程度位S(n),每次都要开辟栈帧
必要的情况才使用递归(如树形)
不存在死递归的概念(因为栈帧基本就1M,不断开辟栈帧,资源就损耗完了)
循环占用的cpu资源。因此存在死循环。

请添加图片描述

解决以下问题:

请添加图片描述

请添加图片描述
下面程序:

倒序输出整数

Print(int n ){if(n != 0){                         ----->printf("%d ",n%10);  54321Print(n/10);   1235123121 0  开始回归printf("%d ",n%10);Print(n/10); printf("%d ",n%10);12345<----}return;}

求最大公约数(递归和非递归)

int fun(int a, int b)
{       //求最大公约数if (b != 0)   //退出递归的条件{return fun(b,a%b); }  return a;}
int fun1(int a, int b)
{       //求最大公约数while (b != 0)   {int c  = a%b;a = b;b = c;}  return a
}

请添加图片描述
错误1:请添加图片描述

菲波那切数列

后一个数为前两个之和。
打印

int main()
{const int n = 10;int arr[n] = {1,1};for(int i =2;i<n;i++){arr[i] = arr[i-1]+arr[i-2];}
}

非递归

int fac(int n)
{int  a = 1,b=1,c=1;  //当n<=3的时候,打印的值均为1也就是前两位for(int i = 3;i<=n;i++){c = a+b;a = bb =c;}return c;
}

递归
时间复杂程度:2^n ,跑法是一颗二叉树。
空间复杂程度最大深度是S(n) 。因为递推时开辟栈帧,回归时,销毁栈帧
请添加图片描述
1.判断退出条件
2.分析最后需要的结果

int fac(int n) 
{int  c = 1;if(n > 2){return fun(n - 1)+fun(n - 2);}else{return c;}}

请添加图片描述
请添加图片描述
查询:递归和非递归(边界检查)
递归

int FindValue(int* br, int n, int val)
{//assertint pos = n-1;if(pos >= 0 && br[pos] != val  ){return  FindValue(br,pos,val);}return pos;
}

非递归

int FindValue(int* br, int n, int val)
{//assertint pos = n-1;if(pos >= 0 && br[pos] != val  ){pos++;}return pos;
}

递归:

int FindValue(int* br, int n, int val)
{//assert//n<1 比 n<=0要好,因为这里的n是规模,1—n的数,而<=0,又有下标的含义if (n < 1&& br[n-1] != val){return n-1;}return  FindValue(br, n-1, val);
}

二分查询:(要求数据是有序的,并且数据在内存中的存储是连续的)
如果数据量小不用考虑下面问题,数据量大,必须考虑下面问题。
所以采用(right-left)/2 + left
例如 1,2,3,4,5 ,6,7,8,9 (8-0)/2 = 4 4+0 = 4,即4号下标
由于存放是以2进制存放,所以左移一位,就相当于除以二
((right-left)>> 1) +left
请添加图片描述

int BinaryFind_Value(int *br,int len,int val)
{//assertint left = 0, right = len - 1;int pos = -1;int mid = -1;while (left < right){   //如果是left+right/2mid = (right - left) / 2 + left;//(right - left) >>1 + left;if (br[mid] < val){left = mid + 1;}else if(br[mid] > val){right = mid; //mid不能加一,因为left<right//加一有最右边的元素访问不到。}else{pos = mid;break;}}return pos;
}
  • int ar[] = {11 ,11, 11, 11, 11, 11, 12, 12, 13, 14, 15}
    查最左边的11
    请添加图片描述
int BinaryFind_Value(int* br, int len, int val)
{//assertint left = 0, right = len - 1;int pos = -1;int mid = -1;while (left <= right){   //如果是left+right/2mid = (right - left) / 2 + left;//(right - left) >>1 + left;if (br[mid] < val){left = mid + 1;}else if (br[mid] > val){right = mid - 1; //mid不能加一,因为left<right//加一有最右边的元素访问不到。}else{                              //可以比较下一个标的值while (mid > left && br[mid -1 ] == val){//pos = mid;  每次都赋值,浪费时间mid--;}pos = mid;break;}}return pos;
}

求ar[1,2,3,]所有子集
ar[0,0,0,0]
0,0,0,1
0,0,1,0
0,0,1,1

1,1,1,1
如何降时间复杂程度?

http://www.dt0577.cn/news/7751.html

相关文章:

  • 公司网站域名到期seo门户 site
  • 佛山模板网站建设百度一下搜索引擎
  • 建设部质监局信息查询官方网站怎么做营销推广
  • asp网站开发设计文档营销的概念是什么
  • 深圳做网站 汉狮网络西安seo高手
  • 合肥住房城乡建设部的网站seo搜索排名影响因素主要有
  • 网站中图片下移怎么做百度平台app下载
  • 网站源码怎样弄成网站semester
  • 美女教师做爰网站全球搜索引擎排名2021
  • 简单微信小程序制作潍坊百度快速排名优化
  • 网站建设访问对象个人网站网页首页
  • 苏州建设网站平台长尾关键词挖掘工具爱网站
  • 重庆网站seo建设网络营销主要有哪些特点
  • wordpress自定义邮件模板下载地址萌新seo
  • 免费域名注册可解析网站seo优化方案
  • 网站开发设计制作合同网络推广要求
  • 怎么做全屏网站企业管理培训
  • 网站建设0doit网上销售都有哪些平台
  • 北京微网站建设设计服务百度搜索关键词排名查询
  • 山西网站制作公司哪家好网络项目免费的资源网
  • 更合高明网站建设收录平台
  • 山西网站建设多少钱海外独立站
  • 生物制药公司网站建设比百度好用的搜索引擎
  • 义乌1688网站网页设计通州优化公司
  • 小程序开发网站设计制作淘宝指数
  • 宁波房产信息网官方网站seo网站优化方案摘要
  • 58同城给做网站搜狗搜索引擎优化指南
  • 网站建设需要做什么准备工作最近热搜新闻事件
  • 做营销型网站多少钱静态网站模板
  • 谈谈网站建设会有哪些问题南沙seo培训