排序(一)简介

算法分类

  • 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。
  • 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 

 

 算法比较

   时间复杂度:

1.时间复杂度可以认为是对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。
2.常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2)。
3.时间复杂度O(1):算法中语句执行次数为一个常数,则时间复杂度为O(1)。

  空间复杂度:

1.空间复杂度是指算法在计算机内执行时所需存储空间的度量,它也是问题规模n的函数。
2.空间复杂度O(1):当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O(1)。
3.空间复杂度O(log2N):当一个算法的空间复杂度与以2为底的n的对数成正比时,可表示为O(log2n) ,  ax=N,则x=logaN。
4.空间复杂度O(n):当一个算法的空间复杂度与n成线性比例关系时,可表示为0(n)。

  排序算法稳定性:

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

 

参照:https://www.cnblogs.com/onepixel/p/7674659.html

posted @ 2021-02-18 15:21  鄙人取个名字好难  阅读(29)  评论(0编辑  收藏  举报