本节作为排序的开场白,先总结一下各种排序的稳定性和时间复杂度。

首先说一下排序稳定性的定义:

假设排序序号是 i 和 j ,且在排序前的序列中 i 领先于 j ,如果排序之后 i 仍然领先于 j ,则称所有的排方法是稳定的;反之,若使得排序后的序列中,j 领先 i ,则称所用的排序算法是不稳定的。

冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法;

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法。

具体的原因会在下面的章节中进行论述。

冒泡法:  
这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。

直接插入排序:O(n*n)

选择排序:O(n*n)

快速排序:平均时间复杂度 n * logn,所有内部排序方法中最高好的,大多数情况下总是最好的。

归并排序:n * logn

堆排序:n * logn

希尔排序:算法的复杂度为n的1.2次幂

 

 

相关文章:

  • 2021-11-23
  • 2021-11-16
  • 2022-02-05
  • 2021-08-19
  • 2022-12-23
  • 2021-12-07
  • 2022-01-18
猜你喜欢
  • 2021-07-24
  • 2021-12-05
  • 2021-05-05
  • 2022-01-08
  • 2021-07-29
  • 2021-08-11
  • 2021-10-11
相关资源
相似解决方案