数据结构
NuerNuer
这个作者很懒,什么都没留下…
展开
-
Prim算法详解
Prim算法是用来寻找一个联通图的最小生成树的算法,是数据结构中一个十分经典的算法,与他齐名的还有了克鲁斯卡尔算法,将会在下一篇中提到。Prim算法思想(归并顶点):首先给定一个起始点,例如我们以A为起始点,选择与它关联的具有最小权值的边,将其加入到生成树的集合顶点U中去(这里我们用visited[i] = true 来实现);然后我们进行N - 1次循环从U中 及 非U中选择两个联通的且...原创 2018-12-08 20:55:06 · 1477 阅读 · 0 评论 -
数据结构之基于顺序表的插入排序
基于顺序表的插入排序(常规插入排序,二分插入排序,希尔排序)这三种的都是插入排序算法的时间复杂度基本相似,但由于希尔排序不同于其他排序方式的思想,所以其时间复杂度会有所不同。常规插入排序:O(n2);二分插入排序:O(n2);减少了找到插入位置的时间,但还是要一位位进行插入!希尔排序:O(n1.25);数据结构定义及其初始化函数:typedef struct SqNode{int d...原创 2018-12-05 23:44:32 · 2610 阅读 · 0 评论 -
克鲁斯卡尔算法
克鲁斯卡尔算法也是用来寻找一个图的最小生成树的算法,与Prim算法相同的是,二者都采用由小及大的策略,逐步将整个图的最小生成树求出,但二者不同的地方在于Prim算法逐步归并顶点,而克鲁斯卡尔算法则是逐步归并边。算法思想:设联通网络N = {V,E}(1)构造一个只有n个顶点,没有边的非连通图T= {V,*},每个顶点独自成一个连通分量;(2)在E中选最小权值的边,若该边的两个顶点落在不同的...原创 2018-12-13 23:01:38 · 464 阅读 · 0 评论 -
拓扑排序详解
1.AOV-网:一个无环的有向图称作有向无环图,简称DAG图有向无环图是描述一项工程或系统的进行过程的有效工具。用顶点表示活动,用弧表示活动间的优先关系的有向图称为顶点表示活动的网,简称AOV-网,在AOV-网中,不应该出现有向环。检测的办法是对有向图的顶点进行拓扑排序,若他所有的点都在其拓扑序列中,则该AOV-网必定不存在环。2。拓扑排序:拓扑排序就是将AOV-网中的所有顶点排成一个线性...原创 2018-12-09 10:27:54 · 797 阅读 · 0 评论 -
迪杰斯特拉算法详解
1.概述:Dijkstra算法是用来寻找两点之间最短路径的算法,在实际生活中有着很大的作用他的思想就是选定一点然后向后遍历直至所有点到选定点的最短距离全部求处为止。2.算法思想:(1)初始化:先找处从源点V0到各终点Vk的直达路径(V0,Vk),即通过一条弧到达的路径。(2)选择:从这些路径中找出一条长度最短的路径(V0,u)。(3)更新:然后对其余各条路径进行适当的调整:若在图中存在弧...原创 2018-12-10 22:12:38 · 11751 阅读 · 1 评论 -
归并排序详解
归并排序的想法其实是比较简单的,但是实现起来却并没有那么容易。现在我们思考如可将两个局部有序的两个数组组合成一个有序的序列,我们有An,Bn两个序列且局部有序,首先我们要新开辟一个新的数组空间Cn。然后我们从An,Bn两个序列中依次选取合适的元素加入Cn,我们要用两个变量来标记An,Bn的下标,伪代码如下:for (…){if(A[i] > B[j]){C[k] = A[i];i...原创 2018-12-18 16:22:09 · 132 阅读 · 0 评论