博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构(python) —— 【15: NB三人组小结】
阅读量:3941 次
发布时间:2019-05-24

本文共 517 字,大约阅读时间需要 1 分钟。

快速、堆、归并排序小结

之前讲了Low B三人组,然后最近又讲了NB三人组的快速排序、堆排序和归并排序。

其中堆排序可能比较难理解,需要花费更多时间去结合图文进行理解。今天来把这三个排序进行小结一下。
三种排序算法的时间复杂度都是O(nlog(n))
一般情况下,就运行时间而言:
快速排序 < 归并排序 < 堆排序

三种排序算法的缺点:

快速排序: 极端情况下,排序效率低
归并排序: 需要额外的内存开销
堆排序: 在快的排序算法中较慢

排序方法 时间复杂度 空间复杂度 稳定性 代码复杂度
最坏情况 平均情况 最好情况
冒泡排序 O(n^2) O(n^2) O(n) O(1) 稳定 简单
选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定 简单
插入排序 O(n^2) O(n^2) O(n^2) O(1) 稳定 简单
快速排序 O(n^2) O(nlogn) O(nlogn) 平均情况O(logn);最坏情况O(n) 不稳定 较复杂
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定 复杂
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定 较复杂

转载地址:http://zbiwi.baihongyu.com/

你可能感兴趣的文章
mex 里面调用matlab函数
查看>>
matlab中cuda编程中分配grid和block dimension的时候的注意事项
查看>>
GPU CUDA and MEX Programming
查看>>
arrayfun用法
查看>>
矩阵积分
查看>>
optimization on macOS
查看>>
Template-Based 3D Model Fitting Using Dual-Domain Relaxation
查看>>
install libfreenect2 on ubuntu 16.04
查看>>
how to use automake to build files
查看>>
using matlab drawing line graph for latex
查看>>
How package finding works
查看>>
build opencv3.3.0 with VTK8.0, CUDA9.0 on ubuntu9.0
查看>>
how to compile kinfu_remake with cuda 9.0 opencv2.4.13.4
查看>>
qtcreator4.4.1中cmake 与cmake3.5.1本身generate出来的setting是有区别的解决方法
查看>>
ubuntu下解决csdn网页打不开的问题
查看>>
MySQL server has gone away 问题的解决方法
查看>>
MySQL十大优化技巧
查看>>
PHP中文件读写操作
查看>>
php开发常识b_01
查看>>
PHP单例模式
查看>>