- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
群体的概念 群体是指由多个数据元素组成的集合体。群体可以分为两个大类:线性群体和非线性群体。 线性群体中的元素按位置排列有序,可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元素。 线性群体中的元素次序与其位置关系是对应的。在线性群体中,又可按照访问元素的不同方法分为直接访问、顺序访问和索引访问。 函数模板的重载 C++规定:函数模板可以重载。它既可以用函数模板重载,也可以用普通函数重载。之所以允许重载是因为函数模板的参数T在实例化时实参类型无隐式转换功能。下面是函数模板重载的实例: template class T //求两个同类型T的变量中的最大者 T max(T x, T y) {return(xy)?x:y;} 数组类的重载下标操作符函数 template class T T ArrayT::operator[ ] (int n) { // 检查下标是否越界 if (n 0 || n size-1) Error(indexOutOfRange,n); // 返回下标为n的数组元素 return alist[n]; } 栈的应用举例——函数调用 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 循环队列 在想象中将数组弯曲成环形,元素出队时,后继元素不移动,每当队尾达到数组最后一个元素时,便再回到数组开头。 1 2 3 4 …… m-1 m-2 m-3 0 am am+1 am+2 a3 队头 队尾 a4 am-2 am-3 am-1 队满状态 元素个数=m 1 2 3 4 …… m-1 m-2 m-3 0 队尾 队头 队空状态 元素个数=0 队尾 1 2 3 4 …… m-1 m-2 m-3 0 a0 a1 a2 a3 队头 一般状态 9.3 群体数据的组织 插入排序 选择排序 交换排序 顺序查找 折半查找 说明 排序(sorting) 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。 数据元素:数据的基本单位。在计算机中通常作为一个整体进行考虑。一个数据元素可由若干数据项组成。 关键字:数据元素中某个数据项的值,用它可以标识(识别)一个数据元素。 在排序过程中需要完成两种基本操作: 比较两个数的大小 调整元素在序列中的位置 * 内部排序与外部排序 内部排序:待排序的数据元素存放在计算机内存中进行的排序过程。 外部排序:待排序的数据元素数量很大,以致内存存中一次不能容纳全部数据,在排序过程中尚需对外存进行访问的排序过程。 内部排序方法 插入排序 选择排序 交换排序 9.3.1 插入排序的基本思想 每一步将一个待排序元素按其关键字值的大小插入到已排序序列的适当位置上,直到待排序元素插入完为止。 初始状态: [5] 4 10 20 12 3 插入操作: 1 [4] [4 5] 10 20 12 3 2 [10] [4 5 10] 20 12 3 3 [20] [4 5 10 20] 12 3 4 [12] [4 5 10 12 20] 3 5 [3] [3 4 5 10 12 20] * 直接插入排序 在插入排序过程中,由于寻找插入位置的方法不同又可以分为不同的插入排序算法,这里我们只介绍最简单的直接插入排序算法。 例9-11 直接插入排序函数模板(9_11.h) template class T void insertionSort(T a[], int n) { int i, j; T temp; for (int i = 1; i n; i++) { int j = i; T temp = a[i]; while (j 0 temp a[j - 1]) { a[j] = a[j - 1]; j--; } a[j] = temp; } } 9.3.2 选择排序的基本思想 每次从待排序序列中选择一个关键字最小的元素,(当需要按关键字升序排列时),顺序排在已排序序列的最后,直至全部排完。 [5 4 10 20 12 3] 初始状态: 3 [4
您可能关注的文档
- 第九章复习..ppt
- 第九章定价策略..ppt
- 彩色的非洲课件21.ppt
- 第九章帐号管理与磁盘配额..ppt
- 第九章带传动和链传动..ppt
- 第九章建筑功能材料..ppt
- 第九章平面连杆机构吕海鸥..ppt
- 彩色的非洲..ppt
- 第九章数据库安全与完整性..ppt
- 彩色的的非洲2(免费阅读).ppt
- 2025年家居家纺商业计划书线上线下融合下的市场拓展策略.docx
- 2025年农业绿色发展政策支持与农业循环经济发展政策优化创新优化报告.docx
- 教育精准扶贫对农村地区教育投入结构优化的影响评估报告.docx
- 医疗美容行业监管政策对美容护肤品牌的影响与2025年市场策略分析报告.docx
- 纺织服装制造行业数字化转型中的政策环境与法规解读报告.docx
- 农业科技成果转化与农村旅游开发2025年报告.docx
- 2025年城市河道生态修复项目组织管理建议书.docx
- 农村电商服务站农产品电商平台用户行为分析与产品创新报告.docx
- 医疗美容服务行业规范化背景下,2025年市场监管法规解读与应用.docx
- 航空运输业2025年疫情冲击应对策略与可持续发展研究报告.docx
文档评论(0)