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

福田网站建设团队温州网站建设方案推广

福田网站建设团队,温州网站建设方案推广,线上转线下营销推广方式,google seo 营销网站文章目录 算法设计与分析分治法动态规划法(整体最优 子问题不独立)贪心法(局部最优)回溯法 算法设计与分析 分治法、回溯法、贪心法、动态规划法 分治法 分而治之,对规模为n的问题 分解为k个规模较小的子问题&#…

文章目录

      • 算法设计与分析
          • 分治法
          • 动态规划法(整体最优 子问题不独立)
          • 贪心法(局部最优)
          • 回溯法


算法设计与分析

分治法、回溯法、贪心法、动态规划法

分治法

分而治之,对规模为n的问题 分解为k个规模较小的子问题,子问题相互独立且与原问题形式相同,可以递归地解决这些子问题,然后将子问题的解合并得到原问题的解

该问题规模缩小到一定的程度就可以容易地解决

该问题可以分解为若干个规模较小的相同问题

利用该问题分解出的子问题的解可以合并为该问题的解

  • 该问题分解的各个子问题是相互独立的

分治算法在每一层递归上都有3个步骤。

1 分解 将原问题分解成一系列子问题

2 求解 递归地求解各个子问题。若子问题足够小 ,直接求解

3 合并 将子问题的解合并成原问题的解

递归 就是在运行的过程中调用自己。 函数递归带来的内存开销 S(n) = O(n) 空间复杂度等于递归调用的深度

Q 快速排序算法在排序过程中,在待定排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分成两个部分,前面一部分元素值小于基准元素,而后面一部分元素值大于基准元素,然后再分别对前后两个部分进一步进行划分。根据上面描述,快速排序算法采用了_A 的算法设计策略。已知确定基准元素操作的时间复杂度为O(n), 则快速排序算法最好和最坏的情况下的时间复杂度为 __D

A 分治 B 动态规划 C 贪心 D 回溯

A O(n)和 O(nlongn) B O(n)和 O(n^2) C O(nlgn)和 O(nlgn) D O(nlgn)和 O(n^2)

时间复杂度分析
(1) 最好情况下的时间复杂度
在最好情况下,每次划分都能将数组均匀地分成两部分(即基准元素正好位于中间位置)。此时,快速排序的递归深度为
logn,每一层需要扫描 n 个元素。因此,总的时间复杂度为:
T(n)=O(nlogn)
(2) 最坏情况下的时间复杂度
在最坏情况下,每次划分都极不均匀(例如,基准元素总是最大或最小值,导致一边为空,另一边包含 n−1 个元素)。此时,递归深度为 n,每一层需要扫描
n,n−1,n−2,… 个元素。因此,总的时间复杂度为:T(n)=O(n^2)

动态规划法(整体最优 子问题不独立)

将待求解问题分解成若干个子问题 先求解子问题 然后由子问题的解得到原问题的解 与分治法不同,适用于动态规划法求解的问题,经分解得到的子问题往往不是独立的。

动态规划算法通常用于求解具有某种最优性质的问题,在这类问题中,可能有许多可行解,每个解对应一个值,我们希望找到具有最优值的那个解。

对于一个给定的问题,若具有以下两个性质,可以考虑用动态规划法求解。

  • 最优子结构。如果一个问题的最优解中包含了其子问题的最优解,就说该问题具有最优子结构。当一个问题具有最优子结构时,提示我们动态规划法适用,但此时贪心算法可能也适用
  • 重叠子问题。 指 用来解原问题的递归算法可反复地解同样的子问题 ,而不是产生新的子问题。当一个递归算法不断地调用同一个问题时,就说该问题包含重叠子问题。若用分治法递归求解,则每次遇到子问题都会视为新问题。会极大降低算法效率。而动态规划法利用重叠子问题,对每个子问题仅计算一次,就把解保存在一个需要时就可以查看的表中,每次查表得时间为常数,

Q 考虑一个背包问题,共有n=5个物品,背包容量为W=10,物品的重量和价值分别为:w={2,2,6,5,4},v={6, 3,5,4,6},求背包问题的最大装包价值。若此为0-1背包问题,分析该问题具有最优子结构,其中c(i,j)表示i个物品、容量为j的0-1背包问题的最大装包价值,最终要求解c(n,W)。 采用自底向上的动态规划方法求解,得到最大装包价值为_ C ,算法的时间复杂度为 _A

A 11 B 14 C 15 D 16.67

A O(nW) B O(nlgn) C O(n^2) D O(nlgnW)

6 +6 + 3

动态规划算法需要填充一个大小为 n×Wn×W 的表格,每个单元格的计算时间为 O(1)。因此,总的时间复杂度为:O(nW)

Q 考虑一个背包问题,共有n=5个物品,背包容量为W=10,物品的重量和价值分别为:w={2,2,6,5,4},v={6, 3,5,4,6},求背包问题的最大装包价值。若此为部分背包问题,首先采用归并排序算法,根据物品的单位重量价值从大到小排序,然后依次将物品放入背包直至所有物品放入背包中或者背包再无容量,则得到的最大装包价值为(D),算法的时间复杂度为( B)。

A 11 B 14 C 15 D 16.67

A O(nW) B O(nlgn) C O(n^2) D O(nlgnW)

单位重量价值 6/2 = 3 3/2 = 1.5 5/6 = 0.83 4/5 = 0.8 6/4 = 1.5

贪心装包

与0-1背包问题不同,部分背包问题允许将物品分割,即可以只取物品的一部分以最大化价值。解决部分背包问题的常用方法是:

  1. 按照物品的单位重量价值(即 价值/重量价值/重量)从大到小排序。
  2. 依次选择单位重量价值最高的物品放入背包,直到背包容量耗尽。

依次选择物品放入背包,直到背包装满:

  1. 物品1:重量为2,价值为6。放入后剩余容量为 10−2=8,总价值为 66。

  2. 物品5:重量为4,价值为6。放入后剩余容量为 8−4=4,总价值为 6+6=12。

  3. 物品2:重量为2,价值为3。放入后剩余容量为 4−2=2,总价值为 12+3=15

  4. 物品3

    :重量为6,但剩余容量只有2,因此只能取其一部分。取重量2,对应价值为:

    部分价值=26×5=1.67部分价值=62×5=1.67

    总价值15+1.67=16.6715+1.67=16.67。

此时背包已满,无需继续装入其他物品。

时间复杂度分析
归并排序:对物品按单位重量价值排序的时间复杂度为 O(nlogn)。
贪心装包:依次装入物品的时间复杂度为 O(n)。
因此,总的时间复杂度为:O(nlogn)

注 O(1) < O(log2n) < O(n) < O(nlog2n) < O(n^2) < O(n^3)< O(2^n) < O(n!) < O(n^n)

贪心法(局部最优)

做出当前来说最好的选择,并不从整体上加以考虑。所作的每步选择都只是当前步骤的局部最优选择。但从整体上来说不一定是最优的选择。由于它不必为了寻找最优解而寻找所有可能解,因此耗费时间少。一般可以快速得到满意的解,但不一定得到最优解,也常用于解决最优化的问题

用贪心法求解的问题一般具有两个重要的性质。

  • 最优子结构 当一个问题的最优解包含子问题的最优解时 称此问题具有最优子结构。问题的最优子结构是该问题可以采用动态规划法或贪心法求解的关键性质
  • 贪心选择性质。 指问题的整体最优解可以通过一系列局部最优的选择,即贪心选择得到。这是贪心法和动态规划法的主要区别
回溯法

回溯法是种选优搜索法,按选优条件向前搜索,以达到目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。走不通就退回再走的技术

http://www.dtcms.com/a/412649.html

相关文章:

  • Java 日志框架核心:门面 + 实现选型逻辑、Lombok 误区解析与日志用法
  • 室内设计和网站建设哪个前景好学校网站建设解决方案
  • VCS Verdi看波形的时候,有红色的正三角、倒三角,还有虚线,这是什么意思啊
  • 扬州网站建设制作炫酷wordpress主题
  • 做房产的一般用哪个网站好做公众号的公司是什么公司
  • 网站建设 三合一如何在微信上做小程序
  • 青岛网站建设 新视点10个暴利小生意创业
  • I/O详解
  • 如何将域名指向网站学习前端的网站
  • 企业应如何进行网站建设vi设计的基本要素
  • 鞍山制作网站做网站界面尺寸
  • 英文网站建设 潍坊数据库和网站建设的论文
  • 兰州市城乡建设局网站公布的信息网站开发环境windows7的优点
  • 承德网站网络营销方式选择考虑的因素
  • 萧山建设局网站用手机开发app
  • Wordpress标签与分类seo技术是什么意思
  • 秦皇岛学网站建设湖北工业信息化网站备案
  • 有关电子商务网站建设的 论文赣州建设网站公司
  • 重庆网站建设坤思特自豪地采用wordpress
  • 现在网站如何做优化西安到北京防疫政策
  • 数据库里建设好的网站为什么外网进不去网站网站怎么做成手机版
  • 大连网站建设服务公司wordpress商城主题模板下载
  • 石家庄网络建设seo快速排名源码
  • 不止Docker:探索容器化安装的四种前沿新玩法
  • 网站建设衤金手指谷哥十四wordpress 豆瓣
  • 网站建设公司厦门有哪些网站开发可选择的方案
  • 华清远见25072班C++学习day3
  • 南通做外贸网站网站建设视频格式
  • 网站搭建的人如何识别网页用什么网站做的
  • 下什么软件做网站wordpress升级设置密码