数据结构和算法18 之总结篇

本文为博主原创文章,转载请注明出处: http://blog.csdn.net/eson_15/article/details/51202049


        前面介绍了经典的数据结构和算法,这一节我们对这些数据结构和算法做一个总结,具体细节,请参见各个章节的详细介绍,这里我们用表格来呈现它们的效率。

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/eson_15

你可能感兴趣的:(java,数据结构,算法,总结,效率)