- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法设计和分析》
1 什么是算法?算法特征有哪些?
依据我自己了解,算法是处理问题方法步骤。比如在处理高数问题时候,能够分步骤进行解答,在编程过程算法能够得到最好表现。
算法是一系列处理问题清楚 指令,因为我最近在考研复习,对于会题目还有进行数次巩固,不过一步步写很浪费时间,所以我只是写出关键指令,比如化简通分,洛必达法则,上下同阶。这么能够提升效率。算法指令也是一样。能够对一定规范 输入,在有限时间内取得所要求输出。一个算法优劣能够用 空间复杂度和 时间复杂度来衡量。
2 若给定某一算法,通常怎样对其分析和评价?
一个算法复杂性高低表现在运行该算法所需要计算机资源多少上面,所需资源越多,我们就说该算法复杂性越高;反之,所需资源越低,则该算法复杂性越低。计算机资源,最关键是时间和空间(存放器)资源。算法复杂性有 时间复杂性和空间复杂性之分。 1. 时间复杂性:例1:设一程序段以下(为讨论方便,每行前加一行号)(1) for i:=1 to n do(2) for j:=1 to n do(3) x:=x+1 ...... 试问在程序运行中各步实施次数各为多少? 解答:行号 次数(频度)(1) n+1(2) n*(n+1)(3) n*n 可见,这段程序总实施次数是:f(n)=2n2+2n+1。在这里,n能够表示问题规模,当n趋向无穷大时,假如 f(n)值很小,则算法优。作为初学者,我们能够用f(n)数量级O来粗略地判定算法 时间复杂性,如上例中时间复杂性可粗略地表示为T(n)=O(n2)。2.空间复杂性:例2:将一一维数组数据(n个)逆序存放到原数组中,下面是实现该问题两种算法:算法1:for i:=1 to n do b[i]:=a[n-i+1]; for i:=1 to n do a[i]:=b[i];算法2:for i:=1 to n div 2 do begin t:=a[i];a[i]:=a[n-i-1];a[n-i-1]:=t
end;算法1时间复杂度为2n,空间复杂度为2n算法2时间复杂度为3*n/2,空间复杂度为n+1显然算法2比算法1优,这两种算法空间复杂度可粗略地表示为S(n)=O(n)
3、从下面算法策略中自选一组,结合某具体问题求解来介绍算法思想,并加以总结、比较:
递归和分治、动态计划和贪心法、回溯法和分支限界法
动态计划算法类似于分治法,基础思想也是将待求解问题分解成若干个子问题。化整为零,降低了运算量。
贪心算法,是永不知足求最优解,有点类似于我们所说完美主义者。
二者之间有相同点,总结来说某种程度上,动规是贪心泛化,贪心是动规特例
贪心:A最优+B最优动态计划:(A+B)最优就单步而言贪心A最优是前一步结果,B最优需要遍历找到动态计划A为前一步可行解,需要选择一个B后再去找A
动态计划算法之0-1背包问题:给定n种物品和一个背包。物品i重量是Wi,其价值为Vi,背包容量为C。应怎样选择装入背包物品,使得装入背包中物品总价值最大??和0-1背包问题类似,所不一样是在选择物品i装入背包时,能够选择物品i一部分,而不一定要全部装入背包,1≤i≤n。?????这2类问题全部含有最优子结构性质,极为相同,但背包问题能够用贪心算法求解,而0-1背包问题却不能用贪心算法求解。用贪心算法解背包问题基础步骤是,首先计算每种物品单位重量价值Vi/Wi,然后,依贪心选择策略,将尽可能多单位重量价值最高物品装入背包。若将这种物品全部装入背包后,背包内物品总重量未超出C,则选择单位重量价值次高物品并尽可能多地装入背包。依此策略一直地进行下去,直到背包装满为止。
???? 具体代码以下:
//4d2?贪心算法?背包问题??
#include?stdafx.h??
#include?iostream???
using?namespace?std;???
??
const?int?N?=?3;??
??
void?Knapsack(int?n,float?M,float?v[],float?w[],float?x[]);??
??
int?main()??
{??
????float?M?=?50;//背包所能容纳重量??
????//这里给定物品按单位价值减序排序??
????float?w[]?=?{0,10,20,30};//下标从1开始??
????float?v[]?=?{0,60,100,120};??
??
????float?x[N+1];??
??
????cout背包所能容纳重量为:Mendl;??
????
您可能关注的文档
最近下载
- 《信息技术与人工智能[Windows 10+WPS 365]》教案 项目三 数据洞察——WPS电子表格处理.docx VIP
- 23CJ87-1 采光、通风、消防排烟天窗(一)(1).pdf VIP
- 高中数学情境化教学中的AI辅助教学策略研究与应用教学研究课题报告.docx
- 水稻机收减损技术课件最新完整版本.pptx VIP
- 第二章-品牌管理基础课件.ppt VIP
- 三年级英语经典测试题听力及答案.docx VIP
- 机械制图习题集刘合荣课后习题答案解析.pdf
- 《信息技术与人工智能[Windows 10+WPS 365]》教案 项目二 文字管家——WPS文档处理.docx VIP
- 延迟焦化之分馏系统.pptx VIP
- 智能护理:人工智能驱动的医疗创新.pptx VIP
原创力文档


文档评论(0)