zoukankan      html  css  js  c++  java
  • 十大排序算法

    稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;

    不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;

    内排序:所有排序操作都在内存中完成;

    外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;

    时间复杂度: 一个算法执行所耗费的时间。

    空间复杂度:运行完一个程序所需内存的大小。

    1、冒泡排序

    时间复杂度最好:n

    时间复杂度最坏:n^2

    时间复杂度平均:n^2

    空间复杂度:1

    稳定性:稳定

    原理:相邻元素比较排序,最值冒出

    适用:小规模,有序

    2、选择

    时间复杂度最好:n^2

    时间复杂度最坏:n^2

    时间复杂度平均:n^2

    空间复杂度:1

    稳定性:不稳定

    原理:无序区选择最小元素放在有序区末尾

    适用:小规模,有序

    3、插入排序

    时间复杂度最好:n

    时间复杂度最坏:n^2

    时间复杂度平均:n^2

    空间复杂度:1

    稳定性:稳定

    原理:无序区第一个元素插入到有序区正确位置

    适用:小规模,有序

    4、希尔排序

    时间复杂度最好:nlogn

    时间复杂度最坏:nlogn

    时间复杂度平均:nlogn

    空间复杂度:1

    稳定性:不稳定

    原理:不断缩小增量的插入排序

    适用:

    5、归并排序

    时间复杂度最好:nlogn

    时间复杂度最坏:nlogn

    时间复杂度平均:nlogn

    空间复杂度:n

    稳定性:稳定

    原理:二分,比较排序

    适用:大规模

    6、快速排序

    时间复杂度最好:nlogn

    时间复杂度最坏:n^2

    时间复杂度平均:nlogn

    空间复杂度:1

    稳定性:不稳定

    原理:选基准,小于基准放左边,大于基准放右边,递归

    适用:大规模

    7、堆排序

    时间复杂度最好:

    时间复杂度最坏:

    时间复杂度平均:

    空间复杂度:

    稳定性:

    原理:

    适用:

  • 相关阅读:
    区分git ,github,github桌面版,gitbash、gitshell
    Andrew Ng机器学习课程笔记(四)之神经网络
    Andrew Ng机器学习课程笔记(三)之正则化
    Andrew Ng机器学习课程笔记(二)之逻辑回归
    Andrew Ng机器学习课程笔记(一)之线性回归
    python机器学习实战(四)
    python机器学习实战(三)
    python机器学习实战(二)
    python机器学习实战(一)
    如何去破解所有的window和offices(超级全面)
  • 原文地址:https://www.cnblogs.com/pacino12134/p/11325701.html
Copyright © 2011-2022 走看看