- 1、本文档共105页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。 算法的五大特征 1、有穷性(Finiteness) 算法的有穷性是指算法必须能在执行有限个步骤之后终止 2、确切性(Definiteness) 算法的每一步骤必须有确切的定义 3、输入项(Input) 一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 4、输出项(Output) 一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 5、可行性(Effectiveness) 算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成;(也称之为有效性) 算法优劣的评价标准 1、正确性 2、可读性 3、健壮性 4、效率 算法与数据结构 算法的描述 给出的冒泡排序算法的基础上,如果我们同时记录第i趟冒泡排序中最后一次发生交换操作的位置m(m=n-i),就会发现从此位置以后的记录均已经有序,即无序区范围缩小在a[1]~a[m]之间,所以在进行下一趟排序操作时,就不必考虑a[m+1]~a[n]范围内的记录了,而只在a[1]~a[m]范围内进行。 冒泡排序比较简单,当初始序列基本有序时,冒泡排序有较高的效率,反之效率较低;其次冒泡排序只需要一个记录的辅助空间,用来作为记录交换的中间暂存单元。 冒泡排序是一种稳定的排序方法。 快速排序又称为分区交换排序。其基本思想是:首先将待排序记录序列中的所有记录作为当前待排序区域,从中任选取一个记录(比如,第一个记录),并以该记录的关键字值为基准,从位于待排序记录序列左右两端开始,逐渐向中间靠拢,交替与基准记录的关键字进行比较、交换,每次比较,若遇左侧记录的关键字值大于基准记录的关键字,则将其与基准记录交换,使其移到基准记录的右侧,若遇右侧记录的关键字值小于基准值,则将其与基准记录交换,使其移至基准记录的左侧,最后让基准记录到达它的最终位置,此时,基准记录将待排序记录分成了左右两个区域,位于基准记录左侧的记录都小于或等于基准记录的关键字,位于基准记录右侧的所有记录的关键字都大于或等于基准记录的关键字,这就是一趟快速排序。 快速排序是一个递归的过程,只要能够实现一趟快速排序的算法,就可以利用递归的方法对一趟快速排序后的左右分区域分别进行快速排序。下面是一趟快速排序的算法分析: (1) 初始化: 将i 和j分别指向待排序区域的最左侧记录和最右侧记录的位置。 i=first; j=end; 将基准记录暂存在temp中。 temp=a[i]; (2) 对当前待排序区域从右侧将要进行比较的记录(j指向的记录)开始向左侧进行扫描,直到找到第一个关键字值小于基准记录关键字值的记录: while (ij temp.key=a[j]) j--; (3) 如果i!=j,则将a[j]中的记录移至a[i],并将i++: a[i]=a[j]; i++; (4) 对当前待排序区域从左侧将要进行比较的记录(i指向的记录)开始向右侧进行扫描,直到找到第一个关键字值大于基准记录关键字的记录: while (ij a[i]=temp.key) i++; (5) 如果i!=j,则将a[i]中的记录移至a[j],并将j++: a[j]=a[i]; j++; (6) 如果此时仍ij,则重复上述(2)、(3)、(4)、(5)操作,否则,表明找到了基准记录的最终位置,并将基准记录移到它的最终位置上: while (ij) { 执行(2)、(3)、(4)、(5) 步骤 } a[i]=temp; void quicksort (DataType a,int first,int end ) { i=first; j=end; temp=a[i]; //初始化 while(ij){ while (ij temp.key= a[j].key) j--; a[i]=a[j]; while (ij a[i].key=temp.key) i++; a[j]=a[i]; } a[i]=temp; if (firsti-1) quicksort(a, first, i-1); if (i+1end) quicksort(a, i+1, en
您可能关注的文档
- 伊苏7完整图文攻略.doc
- 伊苏起源图文攻略1.doc
- 伊苏起源图文攻略3.doc
- 伊苏起源图文全攻略(上).doc
- 英文版口袋妖怪空之花神一周目图文攻略.doc
- 永诺RF603CII无线引闪YN560III图文说明.doc
- 游戏介绍与图文攻略.doc
- 植物大战僵尸图文攻略.doc
- 中国古代名女,各大才女、四大美女、十大名妓,附图文解说.doc
- 中国古代名女知多少(各大才女、四大美女、十大名妓,附图文解说。欣赏美女、提高文学素养、了解历史三不误.doc
- 精品解析:江苏省南京东南实验学校2024-2025学年八年级上学期第一次阶段练习题(解析版).docx
- 精品解析:江苏省南京师范大学附属中学树人学校2024-2025学年八年级上学期10月月考英语试题(原卷版).docx
- 精品解析:河南省郑州市金水区2022-2023学年七年级上学期期中英语试题(原卷版).docx
- 学年论文---养老问题.doc
- 财务会计报告课件.ppt
- 过年那些事儿.ppt
- 第十八章分式课件-人教版八年级数学上册(1).pptx
- Unit5PoemsReadingforWriting课件高中英语人教版选择性.pptx
- 植树问题封闭图形的植树问题1.ppt
- 4.4利用三角形全等测距离课件北师大版七年级数学下册.pptx
文档评论(0)