Algorithm and structure
lanmolei814
这个作者很懒,什么都没留下…
展开
-
数据结构:图论基础
图概述图(Graph)是一种比线性结构和树形结构都要复杂的数据结构。简单讲,图是由表示数据元素的的集合V和表示数据之间关系的集合E组成。其中,数据元素常称作顶点(vertex),数据之间的关系常称作边(edge)。故图可记为G=,其中V是顶点的有穷非空集合,E是边的集合。在图中顶点的前驱和后继是不设限制的,因此图描述的是一种网状关系。无向图若边是无序的或者说是无向的,则称此转载 2014-11-12 22:21:03 · 2295 阅读 · 0 评论 -
海量数据处理
海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据转载 2015-12-14 22:58:31 · 301 阅读 · 0 评论 -
算法系列15天速成 五大经典查找
在我们的算法中,有一种叫做线性查找。分为:顺序查找和折半查找。 查找有两种形态:分为:破坏性查找, 比如有一群mm,我猜她们的年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了。所以此种查找破坏了原来的结构。 非破坏性查找, 这种就反之了,不破坏结构。 一、顺序查找 这种非常简单,就是过一下数组,一个一个的比,找到为止。转载 2015-04-06 17:37:30 · 542 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2014-11-18 22:06:26 · 414 阅读 · 0 评论 -
[经典排序算法][集锦]
经典排序算法 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bu转载 2014-11-18 22:13:08 · 392 阅读 · 0 评论 -
算法系列之十五:循环和递归在算法中的应用
一、递归和循环的关系 1、 递归的定义 顺序执行、循环和跳转是冯·诺依曼计算机体系中程序设计语言的三大基本控制结构,这三种控制结构构成了千姿百态的算法,程序,乃至整个软件世界。递归也算是一种程序控制结构,但是普遍被认为不是基本控制结构,因为递归结构在一般情况下都可以用精心设计的循环结构替换,因此可以说,递归就是一种特殊的循环结构。因为递归方法会直接或间接调用自身算法转载 2014-09-06 00:17:32 · 615 阅读 · 0 评论 -
数据结构——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
一、基本概念每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。性质:1、非空二叉树的第n层上至多有2^(n-1)个元素。2、深度为h的二叉树至多有2^h-1个结点。满二叉树:所有终端都在同一层次,且非终端结点的度数为2。在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。完全二叉树:除了最大的层次即成为一颗满转载 2014-08-14 22:21:16 · 719 阅读 · 0 评论 -
数据结构:图的实现--邻接表
图的实现:邻接表当图中的边数较少时,用邻接表来实现图结构,则会浪费很多内存空间。因此,考虑另一种实现图结构的方法:邻接表。在邻接表中主要有两种节点结构体:顶点节点边节点直接看代码类定义[cpp] view plaincopy#include #include usin转载 2014-11-12 22:28:55 · 679 阅读 · 0 评论 -
数据结构:图的实现--邻接矩阵
图的实现:邻接矩阵为了表现图中顶点之间的关联,我们可以使用邻接矩阵来实现图结构。所谓的邻接矩阵,就是一个反应边与边之间联系的二维数组。这个二维数组我们用matrix[numV][numV]表示,其中numV是顶点数。对于无权图若顶点Vi和Vj之间有边,则matrix[Vi][Vj]=1;否则matrix[Vi][Vj]=0。对于有权图若顶点Vi和Vj之间有边转载 2014-11-12 22:28:02 · 1238 阅读 · 0 评论 -
数据结构:图--拓扑排序
拓扑排序拓扑排序 在实际应用中,有向图的边可以看做是顶点之间制约关系的描述。把顶点看作是一个个任务,则对于有向边i,Vj>表明任务Vj的启动需等到任务Vi完成之后,也就是说任务Vi先于任务Vj完成。对于一个有向图,找出一个顶点序列,且序列满足:若顶点Vi和Vj之间有一条边i,Vj>,则在此序列中顶点Vi必在顶点Vj之前。这样的一个序列就称为有向图的拓扑序列(topologic转载 2014-11-12 22:31:57 · 2486 阅读 · 0 评论 -
数据结构:图的遍历--深度优先、广度优先
图的遍历:深度优先、广度优先遍历 图的遍历是指从图中的某一顶点出发,按照一定的策略访问图中的每一个顶点。当然,每个顶点有且只能被访问一次。 在图的遍历中,深度优先和广度优先是最常使用的两种遍历方式。这两种遍历方式对无向图和有向图都是适用的,并且都是从指定的顶点开始遍历的。先看下两种遍历方式的遍历规则:深度优先 深度优先遍历也叫深度优先搜索(转载 2014-11-12 22:33:28 · 1691 阅读 · 0 评论 -
分治法的经典问题——大整数相乘
请设计一个有效的算法,可以进行两个n位大整数的乘法运算。 参考解答设X和Y都是n位的二进制整数,现在要计算它们的乘积XY。我们可以用小学所学的方法来设计一个计算乘积XY的算法,但是这样做计算步骤太多,显得效率较低。如果将每2个1位数的乘法或加法看作一步运算,那么这种方法要作O(n2)步运算才能求出乘积XY。下面我们用分治法来设计一个更有效的大整数乘积算法。我们将n位转载 2015-12-17 23:02:28 · 691 阅读 · 0 评论