- 28
- 0
- 约 14页
- 2017-01-03 发布于湖北
- 举报
排序算法复杂性分析一秦健刘鹏刘明欢我们郑重承诺,本作业的内容均为原创,没有任何抄袭他人成果的行为,也不存在他人代写作业和程序的行为。引用他人成果或公开资料的部分都已经按照正确的格式在参考文献中标出。作者签字得分统计学生填写老师填写姓名学号工作所占比例得分分别得分秦明要本文通过三种简单排序-插入、冒泡和选择排序算法并运用C++语言编程实现,以计算简单排序算法复杂度。首先,利用不同规模下随机产生的不同序列,计算三种排序方法下的元运算-比较、交换、移动的次数来定量刻画排序算法的时间复杂度,即序列规模与元运算次数的关系,得到三种算法的时间复杂度均为,这说明这三种排序算法具有相同时间复杂度,并且实现简单,所以也归为一类简单排序算法。其次,采用统一规模下的不同排列顺序,主要是两个极端序-顺序、逆序的情况下分析三种算法的时间复杂度,得到算法的最好时间复杂度为,最坏时间复杂度为,反映出不同顺序的序列导致的排序算法时间复杂度的巨大差异性,并且插入、冒泡排序与选择排序之间的优劣也逐渐显现出来,主要是由于逆序对的数目导致交换次数变化的缘故。最后,本文将作为其他排序算法的时间复杂度作为后续扩展部分,以待完善。本文将围绕以下两个问题进行讨论分析:设计一个程序,程序的输入为n个(n必须要从键盘输入)0到10000的正整数(正整数可以是随机产生),输出为对这n个数进行从小到大排序后的序列。排序方法分别使用插入排序、冒泡排序和选择排序。以两个数比较、两个数交换、移动一个数为基本计算单位,测试你所编写的程序对于n=100,500,1000,2000四种输入规模的时间复杂度。一、算法复杂度1.1算法复杂性算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。??计算机的资源,最重要的是时间和空间(即存储器)资源。因而,算法的复杂性有时间复杂性和空间复杂性之分。1.2时间复杂度【1】如果分别用,和表示算法要解的问题的规模、算法的输入和算法本身,而且用表示复杂性,把时间复杂性和空间复杂性分别用和来表示那么有-------(1)设计算机所提供的元运算有种,分别记为,,…,。又设每执行一次这些元运算所需要的时间分别为,,…,。经统计用到的元运算的次数为,则有。因此,。记最坏情况、最好情况和平均情况下的时间复杂性,并分别有其中,是规模为的合法输入的集合;,分别是中使达到的合法输入与使达到的合法输入;而是在算法的应用中出现输入的概率。二、简单排序算法2.1简单排序法思想【2】2.1.1插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。2.1.2冒泡排序重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。冒泡排序是这样实现的:首先从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。然后重复1号步骤,直至再也不能交换。2.1.3选择排序选择排序工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:初始状态:无序区为,有序区为空。第1趟排序在无序区中选出关键字最小的记录,将它与无序区的第1个记录交换,使和分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。2.2简单排序法流程图此处仅给出选择排序算法流程图,冒泡、插入排序算法流程图可根据2.1算法步骤类似给出。2.3简单排序法伪代码同理,此处仅给出插入排序算法伪代码,冒泡、选择排序算法伪代码可根据附录③中的程序类似给出。INSERTION-SORT(A)Begin1forj=0 tolength[A]-12 if A[j]A[j+1] then key=A[j]3 //InsertA[j+1] into the sorted sequenceA[0..j].4 i=j
您可能关注的文档
- 微型钢管抗滑桩施工工法方案.doc
- 中国古代的科学技术讲述.ppt
- 简易升降式机械车库使用说明书方案.doc
- 简易呼吸器使用方案.ppt
- 微生物与植物之间的关系研究方案.ppt
- 中国古代的经济二轮复习讲述.ppt
- 中国古代早期首饰篇讲述.ppt
- 中国古代的科学技术成就4讲述.ppt
- 简生化分析仪的基本原理与结构方案.ppt
- 等高线地形图的判读方案.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 2024年北京市公务员录用开始考《申论》题(含答案).docx VIP
- 重庆市北碚区中国移动数据中心二期岩土工程勘察设计.docx VIP
- 职业能力倾向测验事业单位考试试题与参考答案(2025年).docx VIP
- 2026年煤矿企业开工安全第一课讲座课件.pptx
- 2024届高考物理二轮专题复习与测试第一部分专题五热学光学原子物理第13讲热学命题点四气体状态变化的图像分析方法.pdf VIP
- 2025年西安铁路职业技术学院单招职业技能测试题库(各地真题).docx VIP
- 全优课堂 数学 人教必修第一册 课件期中综合检测卷.pptx
- 职业能力倾向测验事业单位考试试题与参考答案(2025年).docx VIP
- 2024版碎石破碎生产线租赁合同.docx VIP
- 2024年事业单位考试职业能力倾向测验试题与参考答案.pdf VIP
原创力文档

文档评论(0)