Data Structure
文章平均质量分 81
沈波
本人小硕一枚,主要工作为利用机器学习、深度学习以及进化计算等手段,研究社交网络分析以及推荐系统的相关问题。
展开
-
求最小生成树-普里姆算法
最小生成树之prim算法边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。 最小生成树(MST):权值最小的生成树。 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的权值解释为线路的造价。则最小生成树表示使其造价最小的生成树。 构造网的最小生成树必须解决下面两个问题: 1、尽转载 2015-03-30 10:53:48 · 7619 阅读 · 1 评论 -
查找(顺序查找、插值查找和斐波那契查找)
查找查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。查找表分类:静态查找表和动态查找表。动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。平均查找长度(Average Search Length,ASL)需和指定key进行比较的关键字的个数的期望值,成为查找算法在查找原创 2015-04-01 16:02:25 · 1527 阅读 · 0 评论 -
数据结构中的树
数据结构中的树数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。1、二叉查找树(二叉排序树) (图a)二叉查找树是一种动态查找表(图a),具有这些性质:转载 2015-04-01 17:45:45 · 579 阅读 · 0 评论 -
数据结构中各类排序算法
数据结构中各类排序算法一、插入排序1.直接插入排序 直接插入排序(straight insertion sort)的做法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1原创 2015-03-16 11:25:35 · 1079 阅读 · 0 评论 -
八大排序算法
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序转载 2015-03-30 11:48:36 · 623 阅读 · 0 评论 -
二叉树与二叉查找树
二叉树与二叉查找树树(Tree)是n(n≥0)个结点的有限集。在任意一棵非空树中:(1)有且仅有一个特定的被称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。 结点拥有的子树数称为结点的度(Degree)。度为0的结点称为叶子(Leaf)或终端结点转载 2015-04-01 17:23:33 · 856 阅读 · 0 评论 -
求最短路径长度-迪杰特斯拉算法
求最短路径长度-迪杰特斯拉算法 Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据转载 2015-03-29 21:39:07 · 9314 阅读 · 0 评论 -
字符串匹配-KMP算法
字符串匹配KMP算法字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。转载 2015-03-29 20:20:39 · 596 阅读 · 0 评论 -
求关键路径
求关键路径1、重要概念 (1)AOE (Activity On Edges)网络 如果在无有向环的带权有向图中用有向边表示一个工程中的各项活动(Activity),用边上的权值表示活动的持续时间(Duration),用顶点表示事件(Event),则这样的有向图叫做用边表示活动的网络,简称AOE (Activity On Edges)网络。AOE网是一转载 2015-03-30 10:37:52 · 1754 阅读 · 0 评论 -
求最小生成树-克鲁斯卡尔算法
克鲁斯卡尔算法1、基本思想:设无向连通网为G=(V, E),令G的最小生成树为T=(U, TE),其初态为U=V,TE={ },然后,按照边的权值由小到大的顺序,考察G的边集E中的各条边。若被考察的边的两个顶点属于T的两个不同的连通分量,则将此边作为最小生成树的边加入到T中,同时把两个连通分量连接为一个连通分量;若被考察边的两个顶点属于同一个连通分量,则舍去此边,以免造成回路,如此下去,当转载 2015-03-30 10:56:33 · 1670 阅读 · 0 评论 -
拓扑排序
拓扑排序对于一条有向边(u,v),定义u 一个有向图顶点的拓扑序列不是惟一的。并不是任何有向图的顶点都可以排成拓扑序列,有环图是不能排的。例子:比如排课问题,比如士兵排队问题等。 拓扑排序在实际生活中和算法中都有很大的应用。比如要排一下几门课程的先后次序,我们可以把课程抽象成结点,把什么课是什么课的基础抽象成边,那么该图的一个拓扑序列就是这些课的一个可行的先后次序。各种转载 2015-03-30 11:18:49 · 882 阅读 · 0 评论 -
斐波那契查找
斐波那契查找黄金比例又称黄金分割,是指事物各部分间一定的数学比例关系,即将整体一分为二,较大部分与较小部分之比等于整体与较大部分之比,其比值约为1:0.618或1.618:1。0.618被公认为最具有审美意义的比例数字,这个数值的作用不仅仅体现在诸如绘画、雕塑、音乐、建筑等艺术领域,而且在管理、工程设计等方面也有着不可忽视的作用。因此被称为黄金分割。大家记不记得斐波那契转载 2015-03-23 10:08:08 · 1271 阅读 · 0 评论