第1章绪论1.1什么是数据结构(定义).pptVIP

第1章绪论1.1什么是数据结构(定义).ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章绪论1.1什么是数据结构(定义)

1.3 算 法 Algorithm is a finite set of rules which gives a sequence of operation for solving a specific type of problem. (算法是规则的有限集合, 是为解决特定问题而规定的一系列操作。 ) 1. 算法(Algorithm)的定义 有限性:有限步骤之内正常结束, 不能形成无穷循环。 确定性: 算法中的每一个步骤必须有确定含义, 无二义性。 输入: 有多个或0个输入。 输出: 至少有一个或多个输出。  可行性: 原则上能精确进行, 操作可通过已实现的基本运算执行有限次而完成。在算法的五大特性中, 最基本的是有限性、 确定性和可行性。 2. 算法的特性 3. 算法设计的要求 所设计的程序没有语法错误;  所设计的程序对于几组输入数据能够得出满足要求的结果 所设计的程序对于精心选择的典型、 苛刻而带有刁难性的几组输入数据能够得到满足要求的结果。 程序对于一切合法的输入数据都能产生满足要求的结果 1) 算法的正确性 例如: 要求n个数的最大值问题, 给出示意算法如下:  max:=0;  for(i=1; i=n; i++)  { scanf(″%f″, x);  if (xmax) max=x;  } 2) 可读性 3) 健壮性 4) 高效率和低存储量 1.4 算法描述的工具 算法: 描述了数据对象的元素之间的关系(包括数据逻辑关系、 存储关系描述)。 描述算法的工具:算法可用自然语言、框图或高级程序设计语言进行描述。 自然语言简单但易于产生二义,框图直观但不擅长表达数据的组织结构, 而高级程序语言则较为准确但又比较严谨。 程序是算法在计算机中的实现(与所用计算机及所用语言有关)。 1. 算法、 语言和程序的关系 找出与求解有关的数据元素之间的关系(建立结构关系)。 确定在某一数据对象上所施加的运算。 考虑数据元素的存储表示。 选择描述算法的语言。 设计实现求解的算法, 并用程序语言加以描述。 2. 设计实现算法过程的步骤   在数据结构的具体实现中, 频繁地使用指针、 结构体以及类型定义语句typedef。 下面通过两个简单的例子来说明指针、 结构体以及typedef的用法。    例1-1 键盘输入示例。    3. 类描述算法的语言选择 (见P13~15)  4. 指针、 结构体与类型定义 #include stdio.h typedef int integer; typedef int *ipointer; main()  { integer m;   ipointer ip1, ip2; m = 10;   ip1 = m;   *ip1 = 100;   printf(″\n m == %d″, m);   ip2 = (ipointer)malloc(sizeof(int));   *ip2 = m + *ip1;   printf(″\n\n *ip2 == %d″, *ip2);   getch(); /* 利用读字符函数实现暂停, 敲任意键可以继续 */ } 例1-2  简单的复数运算。 #include stdio.h typedef struct {  float realpart; /* 实部 */  float imagpart; /* 虚部 */ } Complex; /* 复数类型 */ main( ) { float a,b; Complex c1, c2, c3; printf(″\n Input realpart and imagpart : ″); scanf(″%f %f″,a,b); c1.realpart = a; c1.imagpart = b;  printf(″\n Input realpart and imagpart : ″);   scanf(″%f %f″,a,b);   c2.realpart = a;  c2.imagpart = b;   c3.realpart = c1.realpart + c2.realpart; /* 复数求和 */   c3.imag

文档评论(0)

daoqqzhuan3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档