各种排序方法的时间复杂度、空间复杂度和稳定性统计表


















































排序法  最差时间分析 平均时间复杂度 稳定度 空间复杂度
冒泡排序 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) 

各种排序方法的时间复杂度、空间复杂度和稳定性统计表,布布扣,bubuko.com

时间: 2024-12-12 05:46:22

各种排序方法的时间复杂度、空间复杂度和稳定性统计表的相关文章

各种排序方法与其相对应的最好、最坏、平均时间复杂度

排序方法 最坏时间复杂度 最好时间复杂度 平均时间复杂度直接插入 O(n2) O(n) O(n2)简单选择 O(n2) O(n2) O(n2)起泡排序 O(n2) O(n) O(n2)快速排序 O(n2) O(nlog2n) O(nlog2n)堆排序 O(nlog2n) O(nlog2n) O(nlog2n)归并排序 O(nlog2n) O(nlog2n) O(nlog2n) 原文地址:https://www.cnblogs.com/Akatsuki-Sanjou/p/9690810.html

算法 - 内部排序方法总结

各种排序方法的性能比较 排序方法 最好时间复杂度 平均时间复杂度 最坏时间复杂度 空间复杂度 稳定性 直接插入排序 O(n) O(n2) O(n2) O(1) 稳定 简单选择排序 O(n2) O(n2) O(n2) O(1) 不稳定 冒泡排序 O(n) O(n2) O(n2) O(1) 稳定 希尔排序 - O(n1.25) - O(1) 不稳定 快速排序 O(nlog2n) O(nlog2n) O(n2) O(log2n)~O(n) 不稳定 堆排序 O(nlog2n) O(nlog2n) O(n

各种排序方法

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序.堆排序或归并排序序. 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短: 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序

各种排序算法的比较(最好、最差、平均时间复杂度,空间复杂度,稳定性)

对比表格 分类 算法 时间复杂度 空间复杂度       稳定性           关联性        最好          最差        平均       插入排序        直接插入排序      O(n)(优化后)     O(n2)           O(n2)           O(1) 稳定   希尔排序 O(n) O(n2) 不确定 O(1) 不稳定 基于直接插入排序     选择排序 直接选择排序 O(n2) O(n2) O(n2) O(1) 不稳定   堆排

各种排序的稳定性,时间复杂度、空间复杂度、稳定性

各种排序的稳定性,时间复杂度.空间复杂度.稳定性总结如下图: 关于时间复杂度: (1)平方阶(O(n2))排序 各类简单排序:直接插入.直接选择和冒泡排序: (2)线性对数阶(O(nlog2n))排序 快速排序.堆排序和归并排序: (3)O(n1+§))排序,§是介于0和1之间的常数. 希尔排序 (4)线性阶(O(n))排序 基数排序,此外还有桶.箱排序. 关于稳定性: 稳定的排序算法:冒泡排序.插入排序.归并排序和基数排序 不是稳定的排序算法:选择排序.快速排序.希尔排序.堆排序 #inclu

[算法] 排序方法复杂度、稳定性汇总

对几种排序方法进行简单总结. 排序类型 时间复杂度 空间复杂度 稳定性 冒泡排序 O(N^2) O(1) 稳定 插入排序 O(N^2) O(1) 稳定 选择排序 O(N^2) O(1) 不稳定 希尔排序 O(N^2) O(1) 不稳定 堆排序 O(NlogN) O(1) 不稳定 快速排序 O(NlogN) O(logN) 不稳定 归并排序 O(NlogN) O(N)  稳定

java 快速排序 时间复杂度 空间复杂度 稳定性

转自:http://blog.csdn.net/believejava/article/details/38434471 —————————————————————————————————————————————— 1.快速排序的基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序. 先看一下这幅图: 把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理:交换了

【计算机基础】 常用的排序算法的时间复杂度和空间复杂度

常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 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) 1

【编程题目】如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)

转自:http://blog.csdn.net/vast_sea/article/details/8167968 看上去似乎任何已知的算法都无法做到,如果谁做到了,那么所有的排序方法:QuickSort,ShellSort,HeapSort,BubbleSort等等等等,都可以扔掉了,还要这些算法干吗阿,呵呵.不过实际上,在数字范围有限制的情况下,是有一个这样的算法的,只需要用一个数组记录每个数字出现次数就可以了. 假定你的数字范围在0到65535范围之内,定义一个数组count[65536](