排序算法的时间复杂度和空间复杂度-----总结

算法的时间复杂度是指:算法执行过程中所需要的基本运算次数。

常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n^2)<Ο(n^3)<…<Ο(2^n)<Ο(n!)。其中O(1)表示基本语句的执行次数是一个常数,一般来说,只要算法中不存在循环语句,其时间复杂度就是Ο(1)。其中Ο(log2n)、Ο(n)、 Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间

一个算法的空间复杂度(Space Complexity)S(n)定义为该算法所耗费的存储空间。

常用排序算法稳定性,时间复杂度分析:

排序算法的时间复杂度和空间复杂度-----总结


冒泡排序,选择排序,堆排序空间复杂度为O(1),因为需要一个临时变量来交换元素位置,(另外遍历序列时自然少不了用一个变量来做索引). 快速排序空间复杂度为logn(因为递归调用了) ,归并排序空间复杂是O(n),需要一个大小为n的临时数组