好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

各种排序算法的优缺点.doc

2页
  • 卖家[上传人]:宝路
  • 文档编号:3685785
  • 上传时间:2017-08-10
  • 文档格式:DOC
  • 文档大小:16KB
  • / 2 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •   一、冒泡排序已知一组无序数据 a[1]、a[2]、……a[n],需将其按升序排列首先比较 a[1]与 a[2]的值,若 a[1]大于 a[2]则交换两者的值,否则不变再比较 a[2]与 a[3]的值,若 a[2]大于 a[3]则交换两者的值,否则不变再比 较 a[3]与 a[4],以此类推,最后比较 a[n-1]与 a[n]的值这样处理一轮后,a[n]的值一定是这组数据中最大的再对 a[1]~a[n- 1]以相同方法处理一轮,则 a[n-1]的值一定是 a[1]~a[n-1]中最大的再对 a[1]~a[n-2]以相同方法处理一轮,以此类推共处理 n-1轮后 a[1]、a[2]、……a[n]就以升序排列了优点:稳定;缺点:慢,每次只能移动相邻两个数据二、选择排序每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完选择排序是不稳定的排序方法n 个记录的文件的直接选择排序可经过 n-1 趟直接选择排序得到有序结果:①初始状态:无序区为 R[1..n],有序区为空②第 1 趟排序在无序区 R[1..n]中选出关键字最小的记录 R[k],将它与无序区的第 1 个记录 R[1]交换,使 R[1..1]和 R[2..n]分别变为记录个数增加 1 个的新有序区和记录个数减少 1 个的新无序区。

      ……③第 i 趟排序第 i 趟排序开始时,当前有序区和无序区分别为 R[1..i-1]和 R(1≤i≤n-1)该趟 排序从当前无序区中选出关键字最小的记录 R[k],将它与无序区的第 1 个记录 R 交换,使 R[1..i]和 R 分别变为记录个数增加 1 个的新有序区和记录个数减少 1 个的新无序区这样,n 个记录的文件的直接选择排序可经过 n-1 趟直接选择排序得到有序结果优点:移动数据的次数已知(n-1 次);缺点:比较次数多三、插入排序已知一组升序排列数据 a[1]、a[2]、……a[n],一组无序数据 b[1]、 b[2]、……b[m],需将二者合并成一个升序数列首先比较 b[1]与 a[1]的值,若 b[1]大于 a[1],则跳过,比较 b[1]与 a[2]的值, 若 b[1]仍然大于 a[2],则继续跳过,直到 b[1]小于 a 数组中某一数据 a[x],则将 a[x]~a[n]分别向后移动一位,将 b[1]插入到原来 a[x]的位置这就完成了 b[1]的插入b[2]~b[m]用相同方法插入若无数组 a,可将 b[1]当作 n=1 的数组 a)优点:稳定,快;缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。

      四、缩小增量排序由希尔在 1959 年提出,又称希尔排序(shell 排序)已知一组无序数据 a[1]、a[2]、……a[n],需将其按升序排列发现当 n 不大时,插入 排序的效果很好首先取一增量 d(da[x],然后采用分治的策略分别对 a[1]~a[k-1]和 a[k+1]~a[n] 两组数据进行快速排序优点:极快,数据移动少;缺点:不稳定六、箱排序已知一组无序正整数数据 a[1]、a[2]、……a[n],需将其按升序排列首先定义一个数组 x[m],且 m>=a[1]、a[2]、……a[n],接着循环 n 次,每次 x[a]++.优点:快,效率达到 O(1)缺点:数据范围必须为正整数并且比较小六、归并排序 归并排序是多次将两个或两个以上的有序表合并成一个新的有序表最简单的归并是直接将两个有序的子表合并成一个有序的表归并排序是稳定的排序.即相等的元素的顺序不会改变.如输入记录 1(1) 3(2) 2(3) 2(4) 5(5) (括号中是记录的关键字)时输出的 1(1) 2(3) 2(4) 3(2) 5(5) 中的 2 和 2 是按输入的顺序.这对要排序数据包含多个信息而要按其中的某一个信息排序 ,要求其它信息尽量按输入的顺序排列时很重要.这也是它比快速排序优势的地方.归并排序:归并排序是一种非就地排序,将需要与待排序序列一样多的辅助空间。

      在使用它对两个己有序的序列归并,将有无比的优势其时间复杂度无论是在最好情况下还是在最坏情况下均是 O(nlog2n)对数据的有序性不敏感若数据节点数据量大,那将不适合但可改造成索引操作,效果将非常出色堆排序:由于它在直接选择排序的基础上利用了比较结果形成效率提高很大它完成排序的总比较次数为 O(nlog2n)它是对数据的有序性不敏感的一种算法但堆排序将需要做两个步骤:-是建堆,二是排序(调整堆) 所以一般在小规模的序列中不合适,但对于较大的序列,将表现出优越的性能。

      点击阅读更多内容
      相关文档
      高一历史上学期期末考前必刷卷统编版03考试版A4含答案.docx 高中英语考试各题型突破攻略听力篇高一高二高三的都要看.docx 高一历史上学期期末考前必刷卷统编版01考试版A3含答案.docx 高中英语考试各题型突破攻略语法填空篇高一高二高三的都要看.docx 高一历史上学期期末考前必刷卷统编版02考试版A3含答案.docx 高中英语考试各题型突破攻略完形填空篇高一高二高三的都要看.docx 高中英语考试各题型突破攻略作文篇高一高二高三的都要看.docx 高考政治如何规范化答题?.docx 高一历史上学期期末考前必刷卷统编版03考试版A3含答案.docx 高一历史上学期期末考前必刷卷统编版02考试版A4含答案.docx 高一历史上学期期末测试卷01统编版中外历史纲要上129课含答案.docx 日历表2028年日历中文版纵向排版周一开始带周数带农历带节假日调休安排1.docx 日历表2028年日历中文版横向排版周一开始带农历带节假日调休安排1.docx 八年级数学北师大版上册课时练第7章《3 平行线的判定》含答案解析.docx 日历表2029年日历中文版横向排版周一开始带周数带农历带节假日调休安排1.docx 日历表2028年日历中文版纵向排版周一开始带周数带农历.docx 人教版二年级数学下册同步测试-有余数的除法含答案解析3含答案.docx 日历表2028年日历中文版横向排版周一开始带农历1.docx 人教版二年级数学下册同步测试-总复习含答案解析-人教新课标含答案.docx 日历表2028年日历中文版横向排版周一开始带周数带农历1.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.