首页 > 编程语言 > 详细

常用的排序算法和时间复杂度

时间:2016-11-19 13:34:13      阅读:391      评论:0      收藏:0      [点我收藏+]

1. 数据结构部分

数据结构中常用的操作的效率表

通用数据结构

查找 

插入 

 删除

遍历 

数组

O(N)

O(1)

O(N)

—

有序数组

O(logN)

O(N)

O(N)

O(N)

链表

O(N)

O(1)

O(N)

—

有序链表

O(N)

O(N)

O(N)

O(N)

二叉树

O(logN)

O(logN)

O(logN)

O(N)

二叉树(最坏)

O(N)

O(N)

O(N)

O(N)

红黑树

O(logN)

O(logN)

O(logN)

O(N)

2-3-4树

O(logN)

O(logN)

O(logN)

O(N)

哈希表

O(1)

O(1)

O(1)

—

专用数据结构

 

 

 

 

栈

—

O(1)

O(1)

—

队列

—

O(1)

O(1)

—

优先级队列

—

O(N)

O(1)

—

优先级队列(堆)

—

O(logN)

O(logN)

 


2. 排序算法

常见的排序算法比较表

排序

平均情况

最好情况

最坏情况

稳定与否

空间复杂度

冒泡排序

O(N2)

O(N)

O(N2)

稳定

1

选择排序

O(N2)

O(N2)

O(N2)

不稳定

1

插入排序

O(N2)

O(N)

O(N2)

稳定

1

希尔排序

O(NlogN)

(依赖于增量序列)

不稳定

1

快速排序

O(NlogN)

O(NlogN)

O(N2)

不稳定

O(logN)

归并排序

O(NlogN)

O(NlogN)

O(NlogN)

稳定

O(N)

二叉树排序

O(NlogN)

O(NlogN)

O(N2)

稳定

O(N)

堆排序

O(NlogN)

O(NlogN)

O(NlogN)

不稳定

1

拓扑排序

O(N+E)

—

—

—

O(N)

首先先给出我们常用的算法的时间复杂度,后面会具体讲解每一个算法,以及在不同的场合下哪种时间复杂度很高效

常用的排序算法和时间复杂度

原文:http://blog.csdn.net/xiangzhihong8/article/details/51547835

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!