常见算法时间复杂度

转载 2016年08月30日 17:41:57

常见算法时间复杂度:
O(1): 表示算法的运行时间为常量
O(n): 表示该算法是线性算法
O(㏒2n): 二分查找算法
O(n2): 对数组进行排序的各种简单算法,例如直接插入排序的算法。
O(n3): 做两个n阶矩阵的乘法运算
O(2n): 求具有n个元素集合的所有子集的算法
O(n!): 求具有N个元素的全排列的算法

优<----------------------<劣
O(1)<O(㏒2n)<O(n)<O(n2)<O(2n)

时间复杂度按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、……k次方阶O(nk)、指数阶O(2n)。
常用排序算法的时间复杂度和空间复杂度

排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度
冒泡排序 O(n2) O(n2) 稳定 O(1)
快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n)
选择排序 O(n2) O(n2) 稳定 O(1)
二叉树排序 O(n2) O(n*log2n) 不一顶 O(n)
插入排序 O(n2) O(n2) 稳定 O(1)
堆排序 O(n*log2n) O(n*log2n) 不稳定 O(1)
希尔排序 O O 不稳定 O(1)

相关文章推荐

常见算法时间复杂度

常见算法时间复杂度: O(1): 表示算法的运行时间为常量 O(n): 表示该算法是线性算法 O(㏒2n): 二分查找算法 O(n2): 对数组进行排序的各种简单算法,例如直接插入排序的算法。...
  • zsyj333
  • zsyj333
  • 2014年06月10日 16:50
  • 572

list的常见操作以及算法的时间复杂度

链表操作,时间复杂度为O(n),重在思维和设计,如下给出了一个链表的常见操作的实例(1) 维护一个数组,来标记链表的元素是否存在(2)数组下标和值得反应反映射,例如 a ={10,20,30,20} ...

常见算法时间复杂度

时间复杂度 算法分析 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。...

常见排序算法的稳定性和时间复杂度小结

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 稳定时间复杂度又是nlogn级别的是归并排序。 冒泡法:  这是最...
  • sjjbupt
  • sjjbupt
  • 2011年08月24日 14:48
  • 692

算法时间复杂度

  • 2017年11月02日 22:28
  • 125B
  • 下载

常见问题时间复杂度的计算过程

时间复杂度的计算过程是由特殊到一般的过程,使用特殊的数值得到普遍的规律,而结果却是一个概数,但这种结果已经足够让我们作为依据评论一个算法的优劣。 同时也让我们明白,算法...

算法与时间复杂度

  • 2013年05月29日 12:47
  • 38KB
  • 下载

几种常见的排序及其时间复杂度

1.插入排序 java版
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常见算法时间复杂度
举报原因:
原因补充:

(最多只允许输入30个字)