美文网首页
几种内部排序

几种内部排序

作者: sunsimple | 来源:发表于2018-05-10 21:53 被阅读0次

1、插入排序:(在有序的序列中插入新的元素使其仍有序)

(a)直接插入排序:适用于待排序的长度比较小的情况:

最小的比较次数(元素非递减排列):n-1,元素不需要移动;

最大的比较次数(元素非递增排列):(n+2)(n-1)/2,移动次数:(n+4)(n-1)/2

故算法的平均时间复杂度为O(n^2)

(b)折半插入排序:在插入新的元素时,应为已有的序列时有序的,所以可以通过折半查找的方式确定待排序元素所在的位置。其时间复杂度仍未:O(n^2)

(c)希尔排序O(n^3/2):若待排序的序列时基本有序时,可以减少比较次数,由此减小时间复杂度。希尔排序基于此,将序列分成若干组后依次进行排序:如下图:

图1 希尔排序

2、快速排序(O(nlogn)):

平均时间上,是目前最好的一种内部排序方法,对冒泡排序的一种改进,冒泡排序的时间复杂度为O(n^2)。但若序列基本有序时,会退化成冒泡排序。

通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序。如下图:

图2 快速排序

3、选择排序:最小的元素需要通过比较序列中的元素中n个值外,次小的值可以基于前一次的比较,而不需要再进行n-1次比较。如:树形选择排序(nlogn),堆排序(nlogn)

图 树形选择排序

4、归并排序(O(nlogn)):

图 归并排序

相关文章

  • 几种内部排序

    1、插入排序:(在有序的序列中插入新的元素使其仍有序) (a)直接插入排序:适用于待排序的长度比较小的情况: 最小...

  • 排序法

    排序分 内部排序和外部排序 内部排序: 插入排序:{直接插入排序,希尔排序} 选择排序:{简单选择排序,堆排序} ...

  • 排序算法总结

    排序算法 排序算法可以分为内部排序和外部排序 内部排序:数据记录在内存中进行排序。 外部排序:排序的数据很大,排序...

  • 排序算法讲解

    排序方法:排序主要包含内部排序和外部排序。内部排序(简称内排序),是指所有待排序内容都存储在内存的排序。外部排序(...

  • 八大排序算法总纲

    排序算法分为内部排序和外部排序。??????怎么还有内部的和外部的 内部排序:是指待排序列完全存放在内存中所进行的...

  • 基础排序算法总结

    排序算法分为内部排序和外部排序,而我们经常说的基础排序算法,都是内部排序算法。包括冒泡排序,选择排序,插入排序,快...

  • iOS排序算法

    (插入排序、选择排序、交换排序、归并排序、基数排序) 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序...

  • 数据结构与算法(二)

    排序算法 1.内部排序:数据记录在内存中进行排序 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归...

  • 常见的排序算法

    概述 排序分为内部排序和外部排序: 内部排序:数据记录在内存中进行排序 外部排序:排序的数据很大,一次不能容纳全部...

  • 阿里P8必备Java 知识点:算法、设计模式、语法,你值得拥有!

    排序算法 9 P1:排序算法的分类 排序算法可以分为内部排序和外部排序,在内存中进行的排序称为内部排序,当要排序的...

网友评论

      本文标题:几种内部排序

      本文链接:https://www.haomeiwen.com/subject/dcworftx.html