软件技术基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
18-* 数据举例:身份证数据的管理 在身份证管理应用层次的视图 数据元素:每个身份证信息是一个数据元素,包括姓名、性别、身份证号和相片等数据项 数据项:姓名、性别、身份证号和相片都是数据项 数据结构:身份证信息之间的关系: 逻辑结构: (线性)表结构 物理结构:数组 操作:增加、删除、查找 数据结构的嵌套:例如:相片是一个图象数据,具有图象数据结构,它可以作为一个数据项嵌套在每个人的数据项中。 18-* 数据结构与算法 一个算法的效率往往与数据的表示形式有着直接的关系。 数据结构的选择,对程序质量的影响极大。 学习数据结构的目的也就是为了更好地进行程序设计。 18-* 1.3.2 数据结构的表示 例11 设数据元素的集合为D={di | 1≤i≤7的整数},画出对应于下列关系所构成的数据结构的图形: R1={(d1,d3),(d1,d7),(d4,d5),(d3,d6),(d2,d4)} R2={(di,dj) | i十j=5} R3={(d2,d3),(d3,d1),(d1,d4),(d4,d6),(d6,d5),(d5,d7)} 三个数据结构的图形如下图所示。 18-* R1={(d1,d3),(d1,d7),(d4,d5),(d3,d6),(d2,d4)} R2={(di,dj) | i十j=5} R3={(d2,d3),(d3,d1),(d1,d4),(d4,d6), (d6,d5),(d5,d7)} 18-* 在数据结构的图形表示中,没有前件的结点称为根结点,如图(a)中的结点d1、d2,图(b)中的结点d5、d6、d7,图(C)中的结点d2; 没有后件的结点称为终结点,如图(a)中的d5、d6、d7,图(b)中的d5、d6、d7,图(c)中的d7。 除了根结点与终结点以外,其余结点均称为内部结点。 图中数据结构的图形表示说明 18-* 优化后的程序: void BuyChicks() { int x,y,z; for ( x=0; x=33; x++) //最多可以买33只母鸡 for( y=0; y=50-1.5*x; y++) //最多可买50只公鸡 { z = 100-x-y; if ((3*x + 2*y + 0.5*z) ==100) cout x,y,z; }; } 18-* 2. 归纳法 考虑一个带有参数n的问题,在问题实例中,n通常表示事物的数目。 当我们寻找这类问题解时,可从求解一个带有小一点参数的相同问题开始,例如参数为n-1,n/2等;然后再把解推广到包含n个物体的实例,这样问题的解决就比较容易。 这种方法是基于数学归纳法。其特点是将问题规模缩小,将解决大问题转化为解决小问题。 18-* 归纳法 递归的概念 自己调用自己的算法过程。 将问题按规律逐层分解,直至含有解的最简形式。(将原问题的求解转换为对其性质相同的子问题的求解) 按逆过程综合求出终解。 直接递归 P(P(P(……))) 间接递归 P(Q(P(……))) 定义的递归 -- 过程的递归 需要机器能力的支持 效率问题 18-* 直接递归: 递归函数的函数体中存在显式的自我调用时,被称为直接递归。例如,函数foo中包含自我调用,因此是直接递归。 int foo(int x) { if (x = 0) return x; return foo(x - 1); } 间接递归: 如果函数中包含对另一个函数的调用而该函数最终会调用函数foo,则被称为间接递归。 int foo(int x) { if (x = 0) return x; return bar(x); } int bar(int y) { return foo(y - 1); } 18-* 递归设计方法 把阶数较高的一个过程,转化为阶数较低同类型的过程。 采用递归编写程序能使程序变得非常简单而清晰。递归的主要思想包括三个方面: a) 定义形式是递归的。 b) 数据之间的关系(即数据结构)按递归定义。 c) 问题本身没有明显的递归结构,但用递归求解比用迭代求解更简单。 18-* 递归设计举例 对于输入的参数n,依次打印出自然数1至n。 非递归解: #include iostream Using namespace std; void write(int n) { int k;

文档评论(0)

如果.可以. + 关注
官方认证
文档贡献者

坚持分享有价值的资源!

认证主体汉中恒朱网络技术有限公司
IP属地陕西
统一社会信用代码/组织机构代码
91610726MA6YWAFG7U

1亿VIP精品文档

相关文档