- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.3 基本算法 2.连乘算法 连乘算法和累加算法的思想类似,只不过一个做乘法,一个做加法。 连乘算法的一般做法是设一个变量p,作为累乘器使用,初值一般为1,设一个变量k用来保存每次需要乘的乘数,在循环体中执行p=p*k的语句即可。例P81 4.3 基本算法 3.统计算法 统计问题在程序设计中也是经常遇到的。求解此类问题的基本步骤,概括如下: 定义代表所有统计要求的计数器变量(有几项统计要求,就有几个计数器变量); 令所有计数器变量的初值为0; 构建循环体,当满足指定的计数要求时,就将相应的计数器的值加1(执行类似于n=n+1的操作); 构建循环条件,根据问题的具体要求,选用相应的循环语句。 输出所有计数器的值 4.3 基本算法 4.求最大值和最小值算法 求最大值和最小值的问题,属于比较问题,是我们在生活中经常做的事情。比如,找出班上同学中个子最高的同学、年龄最大的同学,若干件商品中价格最低的商品等等,通常采用的方法是两两比较。 4.3 基本算法 求解此类问题的基本步骤,可以概括如下: 定义x代表N个数中的1个数; 定义一个存放最大值的变量max,定义一个存放最小值的变量min; 分别令max=所有数据中的第1个数,min=所有数据中的第1个数; 构建循环体, 将x与max比较,如果x比max大,令max=x; 将x与min比较,如果x比min小,令min=x。 构建循环条件,根据问题的具体要求,选用相应的循环语句; 输出max和min的值。例P82 4.3 基本算法 4.3.2?排序 所谓排序,就是将一组相同类型的记录序列调整为按照元素关键字有序(递增或递减)的记录序列。 4.3 基本算法 1.选择法排序 选择排序是一种简单的容易实现的排序方法。 基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在已排好序的序列的最后(也可以视为待排序序列的起始位置),直到全部待排序的数据元素排完。 按照顺序依次排列第一、二、三……元素。 4.3 基本算法 2.冒泡法排序 冒泡排序是一种计算机科学领域的较简单的排序算法。 通过序列中相邻元素之间队交换,使较小的元素逐步从序列的后端移到序列的前端,使较大的元素从序列的前端移到后端。它的执行过程有点像在水中气泡的运动,轻的往上浮,重的往下沉,因此人们形象地称这种排序方法为“冒泡排序”。 冒泡排序法主要是比较相邻两个元素的值,如果前面的数比后面的数大,就执行一次交换,这样就可以在每一趟的比较中都产生了本趟的最大值。 4.3 基本算法 3.插入排序 插入排序是一种简单直观的排序算法。适用于少量数据的排序,是一种稳定的排序方法。 基本思想是:将记录分为有序和无序两个序列,假定当插入第k个记录时,前面的R1,R2,……,Rk-1已经排好序,而后面的Rk,Rk+1,……,Rn仍然无序,这时用Rk的关键字与Rk-1的关键字进行比较,若Rk小于Rk-1,则将Rk-1向后移动一个单元;再用Rk的关键字与Rk-2的关键字进行比较,若Rk小于Rk-2,则将Rk-2向后移动一个单元;依次比较下去,直到找到插入位置将Rk插入。初始状态认为有序序列为{ R1}。 4.3 基本算法 4.3.3?查找 查找也称为检索,它是在较大的数据集中找出或定位某些数据的过程,即在大量的信息中寻找一个特定的信息元素,在计算机中进行查找的方法是根据表中的记录的组织结构确定的,被用于查找的数据元素的属性一般称为关键字。 查找表即查找集合,是为了进行查找而建立起来的数据结构,集合中元素的存储结构可以是顺序结构,也可以是树状结构或图结构。 4.3 基本算法 在查找的时候,若随着查找的进行,查找表的长度是固定的,即保持初始元素个数不变,就是静态查找,静态查找的查找表以顺序存储结构为主,这样的查找表称为静态查找表,所对应的查找算法属于静态查找技术。 若随着查找的进行,查找表的内容会动态地扩张或缩小,那就是动态查找,动态查找以树状结构居多,这样的查找表称为动态查找表,所对应的查找算法属于动态查找技术。 4.3 基本算法 下面介绍基于顺序结构的两种常用查找方法。 1.顺序查找 顺序查找也称为线性查找,是一种最简单的查找方法,可用于有序列表,也可用于无序列表。其基本思想是:从查找表(数据结构线性表)的一端开始,顺序扫描线性表,依次将扫描到的结点关键字与给定值key相比较,若当前扫描到的结点关键字
原创力文档


文档评论(0)