排序算法分析

【排序的分类】

1. 基于比较的排序

  • 交换排序(冒泡排序、快速排序)
  • 选择排序(简单选择排序、堆排序)
  • 插入排序(直接插入排序、折半插入、希尔排序)
  • 归并排序

2. 不基于比较的排序

  • 基数排序

【排序算法分析】

1. 冒泡排序

最好情况:O(n)

最坏情况:

                   O(n^2)

 

平均情况:O(n^2)

2. 快速排序

最好情况:T(n) ≤ 2T(n/2)+n            O(nlogn)

最坏情况:O(n^2)

平均情况:

O(nlogn) 

3. 直接选择排序

最好情况、最坏情况、平均情况:O(n^2)

4. 堆排序

最好情况、最坏情况、平均情况:O(nlogn)

5. 直接(折半)插入排序

最好情况:O(n)

最坏情况:O(n^2)

平均情况:O(n^2)

6. 希尔排序

最坏情况:O(n^2)

7. 归并排序

最好情况、最坏情况、平均情况:O(nlogn)

【问题复杂度下界】

规约法:O(nlogn)

 

posted @ 2020-06-24 16:12  梦里飞雪飘  阅读(152)  评论(0)    收藏  举报