刘剑峰的博客

一起交流技术,谦虚学习

Linux基础学习

对于linux中,/表示根目录,/dev下存放的是硬件设备文件 linux中的文件系统逻辑结构是树状结构的,从逻辑上看,父节点和子节点等会有关联,但实际上,看似父子文件在linux中是可能是存放在不同盘符下的。一:文件目录处理指令除了ls命令,还有ll命令,可以显示详细信息。 ls -i 值得...

2016-11-28 21:19:21

阅读数 350

评论数 0

弗洛伊德(Floyd)算法求图的最短路径

弗洛伊德基本思想弗洛伊德算法作为求最短路径的经典算法,其算法实现相比迪杰斯特拉等算法是非常优雅的,可读性和理解都非常好。 基本思想: 弗洛伊德算法定义了两个二维矩阵: 矩阵D记录顶点间的最小路径 例如D[0][3]= 10,说明顶点0 到 3 的最短路径为10; ...

2016-11-26 11:44:02

阅读数 17795

评论数 8

图的邻接表和DFS遍历

邻接矩阵和邻接表的对比之前一篇文章我们学习了 图的邻接矩阵和DFS遍历, 邻接矩阵对于图来说是一种很不错的存储结构,但是也有特殊的情况,例如边数很少的时候。此时的邻接矩阵,只有(v0,v1)和(v1, v0)有值,其他都是0或无穷。然而,所以对于邻接矩阵来说,其它的空间都被浪费掉了,图中结点数很少...

2016-11-24 21:52:34

阅读数 5050

评论数 0

Abbott的复仇(Abbott's Revenge)BFS算法实现

The questionThe 1999 World FinalsContest included a problem based on a “dicemaze.” At the time the problem was written, the judges were unable todisc...

2016-11-24 00:19:40

阅读数 1535

评论数 0

图的邻接矩阵和DFS遍历

图的存储结构相对于线性表和树来说,是复杂了许多,而不是用一个线性表或者链表就能定义的。对于图来说,它的存储方式有邻接矩阵,邻接表,十字链表,邻接多重表和边集数组。在这里,要介绍的是如果使用邻接矩阵和邻接表来存储图结构。一、邻接矩阵图的邻接矩阵存储是用两个数组来完成的。一个一维数组存储定点信息(称为...

2016-11-23 18:58:52

阅读数 4330

评论数 0

算法入门实例(一)

一:蛇形填数在n*n的矩阵中,填入矩阵维度,然后形成一个蛇形矩阵,例如,当填入维度为4时,形成的蛇形矩阵: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4思路分析可以想象对这个蛇形矩阵的绘制时,是在绘制一条路。笔的起...

2016-11-16 00:44:58

阅读数 422

评论数 0

java爬虫入门实战

爬虫 百度百科:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 爬虫的实质,就是获取静态数据,并对此进行分析从而获取对我们有价值的数据,...

2016-11-11 22:57:18

阅读数 18515

评论数 6

经典排序算法:快速排序(Quick Sort)

快速排序算法快速排序算法被称为20世纪十大算法之一,是最重要的算法之一,是一定要掌握和熟练的! 快速排序的基本思想是:通过一趟排序,将无序序列分割成独立的两部分,其中一部分的关键字均比另一部分的关键字小,然后再对这两部分记录分别进行排序,从而达到整个无序序列达成有序。案例分析假如现在我们要对这个...

2016-11-10 13:01:37

阅读数 573

评论数 0

经典排序算法:堆排序(Heap Sort)

什么是堆首先堆是一个完全二叉树,但同时他具有这样的要求:每一个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每一个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图是一个大顶堆 在此要补充一个二叉树的性质:二叉树的某个节点下标为i,则它的左孩子的下标一定为2i,右孩子下标一定为2...

2016-11-09 23:06:06

阅读数 436

评论数 0

经典排序算法:希尔排序(Shell Sort)

希尔排序希尔排序是Shell在1959年提出的一种排序算法,它出现的重要意义在于,之前的排序算法基本都是O(n²),希尔算法是突破这个时间复杂度的第一批算法之一,所以它绝对值得我们了解掌握!希尔排序的基本思想是: 把记录按increment(增量)分组,对每组记录采用直接插入排序方法进行排序。 ...

2016-11-09 00:20:53

阅读数 458

评论数 0

经典排序算法:冒泡排序(Bubble Sort)

冒泡排序(Bubble Sort)冒泡排序作为排序中的经典算法,其思想是非常具有意义的,同时也是面试官很经常提问面试者的考题。 它的基本思想是:两两比较相邻的记录的关键字,如果反序则交换,知道没有反序的记录为止。案例分析假设我要对这么一个数组进行排序: 9,1,5,8,3,7,4,6,2冒泡图...

2016-11-08 20:05:46

阅读数 1701

评论数 0

散列(Hash)建立和查找(面试常考)

散列技术首先要谈谈什么是散列(Hash)技术,散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,是的每一个关键字key对应一个存储位置。散列函数既然散列技术就是值跟地址的映射关系,那么我们的问题就是如何确定这个地址,散列函数就是用来计算散列地址的。散列函数的实现有多种方法,例如直...

2016-11-08 00:32:47

阅读数 424

评论数 1

二叉排序树的建立和查找(面试常考)

在众多查找方法中,二叉排序树查找是比较好的一种查找,其效率比顺序查找,折半查找,插值查找,斐波纳契查找等都要好。二叉排序树的建立首先要了解而叉排序树如何建立,给定一组数组,建立一个而叉排序树#include <iostream> typedef struct BitNode{ i...

2016-11-07 22:12:59

阅读数 3157

评论数 0

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