转载自:http://blog.csdn.net/sailor_8318/article/details/30543831~n无序数组时间复杂度为O(n)排序有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),使用交换,而且一次只能交换两个数.(华为)...
分类:
编程语言 时间:
2014-06-26 18:20:53
阅读次数:
143
本节将通过一个实例来说明GDI+在MFC中的应用,本文实现了一个带有插件功能的排序算法演示器,同时,本文也是本人算法系列的一个开篇。后续将会实现排序算法插件,并在改程序中进行演示。演示完毕后,用户可以选择保存演示过程为GIF。...
分类:
其他好文 时间:
2014-06-22 22:04:52
阅读次数:
307
归并排序是建立在归并操作上的一种有效的排序算法。该算法是採用分治法(Divide and Conquer)的一个很典型的应用。首先考虑下怎样将将二个有序数列合并。这个很easy,仅仅要从比較二个数列的第一个数,谁小就先取谁,取了后就在相应数列中删除这个数。然后再进行比較,假设有数列为空,那直接将还有...
分类:
其他好文 时间:
2014-06-20 15:28:28
阅读次数:
153
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:
其他好文 时间:
2014-06-19 07:54:46
阅读次数:
174
归并排序是建立在归并操作上的一种有效的排序算法。该算法是採用分治法(Divide and
Conquer)的一个很典型的应用。首先考虑下怎样将将二个有序数列合并。这个很easy,仅仅要从比較二个数列的第一个数,谁小就先取谁,取了后就在相应数列中删除这个数。然后再进行比較,假设有数列为空,那直接将还有...
分类:
其他好文 时间:
2014-06-11 21:52:36
阅读次数:
289
2.深度优先搜索 为了访问一个顶点,我们将它标记为已经访问过,然后递归的访问所有与子邻接的并且尚未标记的顶点,这就是深度优先搜索(DFS),DFS常用于解决路径问题。 比如下面的连通图,我们从顶点0开始对图进行探索下面这个图显示了DFS处理时的递归调用树。DFS可以解决的问题:1)环检测:一个图中有...
分类:
其他好文 时间:
2014-06-07 21:20:13
阅读次数:
372
最近看了很多介绍图算法的文章,发现网上可以搜到的资料比较少,所以打算在这写一个介绍图算法的系列文章,一方面是帮助自己整理,另一方面也给大家分享下这方面的知识。1.1图的定义: 图(graph)由顶点(vertex)和边(edge)的集合组成,每一条边就是一个点对(v,w)。图的种类:地图,电路图,调...
分类:
其他好文 时间:
2014-06-07 06:13:29
阅读次数:
305
hellow,everybody.今天我们来总结一下《大话数据结构》第二章----算法。那么首先,让我们一起回忆一下书籍目录关于第二章的内容吧。
算法 1.数据结构与算法的关系 2.两种算法的对比 3.算法的定义 4.算法的特性 5.算法设计的要求 6.算法效率的度量方法 7.函数的渐近增长 8.算...
分类:
其他好文 时间:
2014-05-26 08:26:50
阅读次数:
314
本章是弗洛伊德算法的C++实现。目录 1. 弗洛伊德算法介绍 2. 弗洛伊德算法图解 3.
弗洛伊德算法的代码说明 4. 弗洛伊德算法的源码
转载请注明出处:http://www.cnblogs.com/skywang12345/更多内容:数据结构与算法系列 目录
弗洛伊德算法介绍和Dijkstr....
分类:
编程语言 时间:
2014-05-25 03:30:59
阅读次数:
256