软设之排序算法对比

直接插入 

时间复杂度:平均情况为O(n^2)。特殊情况下基本有序最优为O(n)

空间复杂度:O(1)

希尔排序

时间复杂度:平均情况O(n^1.3)

空间复杂度:O(1)

直接选择排序

时间复杂度:O(n^2)

空间复杂度:O(1)

堆排序

时间复杂度:O(nlog(2)n)

空间复杂度:O(1)

冒泡排序

时间复杂度:平均情况O(n^2)

空间复杂度:O(1)

快速排序

时间复杂度:平均情况O(nlog(2)n),基本有序最差是O(n^2)

空间复杂度:O(1)

归并排序

时间复杂度 O(nlog(2)n)

空间复杂度O(n)

基数排序

时间复杂度:O(d(n+rd))

空间复杂度:O(rd)

排序算法选择

如果数据元素数目n比较小,可采用直接插入排序和简单选择排序

如果要排列记录基本有序,可以采用直接插入排序或冒泡排序

如果数据数目很大,应采用时间复杂度为O(nlog(2)n)的排序方法。

快速排序目前被认为是内部排序中最好的方法,如果待排序的关键字为随机分布,快速排序的平均运行时间最短

堆排序只需要一个辅助空间,并且不会出现在快速排序中可能出现的最快情况

快速排序和堆排序都是不稳定的排序方法,如果追求排序稳定,可选择归并排序。

相关推荐

  1. 排序算法对比

    2024-06-09 22:20:02       9 阅读
  2. 敏捷方法

    2024-06-09 22:20:02       5 阅读
  3. 进程的状态

    2024-06-09 22:20:02       9 阅读
  4. 死锁问题

    2024-06-09 22:20:02       13 阅读
  5. 段页式存储

    2024-06-09 22:20:02       11 阅读
  6. 有限自动机

    2024-06-09 22:20:02       11 阅读
  7. 编译程序与解释程序

    2024-06-09 22:20:02       11 阅读
  8. 需求分析的工具

    2024-06-09 22:20:02       8 阅读
  9. 白盒测试

    2024-06-09 22:20:02       6 阅读
  10. I/O数据传输控制方式

    2024-06-09 22:20:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 22:20:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 22:20:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 22:20:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 22:20:02       20 阅读

热门阅读

  1. ghidra

    2024-06-09 22:20:02       9 阅读
  2. P11 品牌管理

    2024-06-09 22:20:02       11 阅读
  3. 爬山算法的详细介绍

    2024-06-09 22:20:02       11 阅读
  4. Flutter 常见报错记录

    2024-06-09 22:20:02       13 阅读
  5. 解决更新Android Studio后下载Gradle超时

    2024-06-09 22:20:02       11 阅读
  6. 给自己Linux搞个『回收站』,防止文件误删除

    2024-06-09 22:20:02       12 阅读