倪升武的博客

这世上天才很少,懒蛋却很多,你若对得起时间,时间便对得起你!

排序:
默认
按更新时间
按访问量

常用数据结构和算法操作效率的对比总结

前面介绍了经典的数据结构和算法,这一节我们对这些数据结构和算法做一个总结,具体细节,请参见各个章节的详细介绍,这里我们用表格来呈现它们的效率。1. 数据结构部分数据结构中常用的操作的效率表通用数据结构查找 插入  删除遍历 数组O(N)O(1)O(N)—有序数组O(logN)O(N)O(N)O(N...

2016-07-19 07:59:07

阅读数:11559

评论数:7

【数据结构和算法17】拓扑排序

这一节我们学习一个新的排序算法,准确的来说,应该叫“有向图的拓扑排序”。所谓有向图,就是A->B,但是B不能到A。与无向图的区别是,它的边在邻接矩阵里只有一项(友情提示:如果对图这种数据结构部不太了解的话,可以先看一下这篇博文:数据结构和算法之 无向图。因为拓扑排序是基于图这种数据结构的)。

2016-04-20 12:17:53

阅读数:5990

评论数:1

【数据结构和算法16】堆排序

堆排序,顾名思义就是利用堆这个数据结构对数据项进行排序,前面提到过,堆数据结构中,节点大于或等于自己的子节点。那么我们可以将待排序的数据项依次添加到堆中,然后再依次取出根节点即可。从堆中取出的数据项是从大到小排列的。因为根节点永远是最大的,而堆中永远是取根节点。如果对堆这种数据结构不太了解的话,可...

2016-04-19 19:54:21

阅读数:2587

评论数:2

【数据结构和算法15】二叉树排序

本文为博主原创文章,转载请注明出处:         顾名思义,二叉树排序就是利用二叉搜索树的特点进行排序,前面提到过二叉搜索树的特点是,左子节点比自己小,右子节点比自己大,那么二叉树排序的思想就是先将待排序序列逐个添加到二叉搜索树中去,再通过中序遍历二叉搜索树就可以将数据从小到大取出来。如...

2016-04-19 19:38:35

阅读数:3227

评论数:1

【数据结构和算法14】归并排序

归并算法的中心是归并两个已经有序的数组。归并两个有序数组A和B,就生成了第三个数组C,数组C包含数组A和B的所有数据项,并且使它们有序的排列在数组C中。首先我们来看看归并的过程,然后看它是如何在排序中使用的。         假设有两个有序数组,不要求有相同的大小。设数组A有4个数据项,数组B有6...

2016-04-19 19:17:42

阅读数:3761

评论数:3

【数据结构和算法13】快速排序

上一节我们学习了一个高级排序算法:希尔排序,这一节我们将讨论另一个高级排序算法:快速排序。         快速排序算法是最流行的排序算法,因为有充足的理由,在大多数情况下,快速排序都是最快的,执行时间为O(NlogN)级(这只是对内部排序或者说随机存储器内的排序而言,对于在磁盘文件中的数据进行...

2016-04-16 21:00:12

阅读数:3067

评论数:1

【数据结构和算法12】希尔排序

        上一章我们学习了冒泡排序、选择排序和插入排序三种基础排序算法,这三种排序算法比较简单,时间复杂度均为O(N2),效率不高。这节我们讨论一个高级排序算法:希尔排序。希尔排序是基于插入排序的,插入排序有个弊端,假设一个很小的数据项在很靠近右端的位置上,那么所有的中间数据项都必须向右移动...

2016-04-16 16:31:43

阅读数:3702

评论数:1

【数据结构和算法11】基础排序

前10节我们学习了一些经典的数据结构,从这节开始,我们将学习一些排序算法。这一节我们先学习几个基础排序算法:冒泡排序,选择排序和插入排序。1. 冒泡排序        冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序算...

2016-04-14 22:02:43

阅读数:3672

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭