小地盘的诺克萨斯

博观而约取,厚积而薄发

Android 知识图谱

2015-01-30 23:59:26

阅读数 564

评论数 0

最短路径(一)—Floyd-Warshall(只有五行的算法)

“多源最短路径”——计算任意两个城市之间的最短路径。 上图中有4个城市8条公路,公路上的数字表示这条公路的长短。公路是单向的。我们现在需要求任意两个城市之间的最短路径,也就是求任意两个点之间的最短路径。这个问题称为“多源最短路径”问题。 用4*4的矩阵存储图的信息,二维数组e存储。...

2015-01-30 21:43:06

阅读数 5253

评论数 1

图的遍历(二)—广度优先遍历

上一节中写了图的深度优先遍历,http://blog.csdn.net/wtyvhreal/article/details/43305785 这一节讲解下图的广度优先遍历。 同样的图: 广度优先遍历的顺序结果如下: 广度优先遍历的思想: 首先以一个未被访问过的顶点...

2015-01-30 13:29:03

阅读数 2206

评论数 0

图的遍历(一)—深度优先遍历

图就是由一些顶点和连接这些顶点的边组成的。 例如上图就是由5个顶点(1、2、3、4、5)和5条边(1-2、1-3、1-5、2-4、3-5)组成。 我们从1号顶点开始遍历这个图,遍历就是把图的每一个顶点都访问依次。 深度优先遍历的结果: 遍历顺序为: 深度优先遍历的思想...

2015-01-30 12:54:20

阅读数 6484

评论数 0

广度优先搜索[再解迷宫]

上一节讲过深度优先搜索解决迷宫,http://blog.csdn.net/wtyvhreal/article/details/43268115 这一节讲解广度优先搜索解决迷宫。 广度优先搜索(Breadth First Search,BFS),也称为宽度优先搜索。 还是二维数组存储,...

2015-01-29 11:28:02

阅读数 1833

评论数 0

深度优先搜索[奥数等式、迷宫找人]

上一节我们用暴力枚举解决奥数等式,虽然简单,但是很蛋疼。这一节讲用深搜的方式解决,高大上。 深度优先搜索(Depth First Search,DFS),理解深搜的关键在于解决“当下该如何做”。至于“下一步如何做”则与“当下该如何做”是一样的。通常的方法就是把每一种可能都是尝试一遍。当前这一步...

2015-01-29 10:56:13

阅读数 2216

评论数 0

暴力的枚举法[奥数等式]

将数字1~9分别填入,每个数字只能使用一次使得等式成立。例如173+286=459就是一个合理的组合,请问一共有多少种合理的组合?注意173+286=459和286+173=459是同一种组合。 根据枚举思想我们只需要枚举每一位上所有可能的数就好了。用一个book数组来标记解决互不相等的...

2015-01-29 10:44:46

阅读数 2495

评论数 2

链表和模拟链表[插入数字]

有一串已经从小到大排好序的数2 3 5 8 9 10 18 26 32。现需要往这串数中插入6使其得到的新序列仍符合从小到大排列。如我们使用数组来实现这一操作,则需要将8和8后面的数都依次往后挪一位,如下 这样操作显然很耽误时间,如果使用链表则会快很多。 此时如果需要在8前面插入一个6...

2015-01-28 11:54:05

阅读数 2109

评论数 0

栈浅析[解密回文]

栈的实现很简单,只需要一个一维数组和一个指向栈顶的变量top就可以了。我们通过top来对栈进行插入和删除操作。      栈究竟有哪些作用呢?我们来看一个例子。“xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha...

2015-01-28 11:46:43

阅读数 1876

评论数 0

队列浅析[解密QQ号]

题目: 新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数放到这串...

2015-01-27 17:21:43

阅读数 1918

评论数 0

快速排序[平均时间复杂度O(NlogN)]

基本思想: 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这10个数进行排序。首先在这个序列中随便找一个数作为基准数。为了方便,就让第一个数6作为基准数。分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,...

2015-01-27 16:36:05

阅读数 3564

评论数 1

冒泡排序[简单复杂度高O(N^2)]

冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。 “冒泡排序”的原理是:每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数(即第5位)归位,第二趟只能将倒数第2位上的数(即第4位)归位,第三趟只能将倒数第3位上的数(即第3位)归位,依次。 总结一下:...

2015-01-27 15:49:37

阅读数 2080

评论数 0

桶排序[最快最简单排序O(M+N)]

5个数要排序,5,3,5,2,8 首先我们需要申请一个大小为11的数组int a[11]。现在你已经有了11个变量,编号从a[0]~a[10]。刚开始的时候,我们将a[0]~a[10]都初始化为0,表示这些分数还都没有人得过。 下面开始处理每一个人的分数,第一个人的分数是5分,我们就将相对应的...

2015-01-27 15:30:31

阅读数 2156

评论数 0

Redis研究(十九)—命令属性

Redis的不同命令拥有不同的属性,如是否是只读命令,是否是管理员命令等,一个命令可以拥有多个属性。在一些特殊情况下不同属性的命令会有不同的表现,下面来逐一介绍。 1、 REDIS_CMD_WRITE       拥有REDIS_CMD_WRITE属性的命令的表现是会修改Redis数据...

2015-01-27 13:16:09

阅读数 4087

评论数 1

Redis研究(十八)—管道(pipeline)

客户端和Redis使用TCP协议连接。不论是客户端向Redis发送命令还是Redis向客户端返回命令的执行结果,都需要经过网络传输,这两个部分的总耗时称为往返时延。根据网络性能不同,往返时延也不同,大致来说到本地回环地址(loop back address)的往返时延在数量级上相当于Redis处理...

2015-01-25 21:12:55

阅读数 3020

评论数 6

Redis研究(十七)—SORT排序

一、有序集合的集合操作        集合类型提供了强大的集合操作命令,但是如果需要排序就要用到有序集合类型。Redis的作者在设计Redis的命令时考虑到了不同数据类型的使用场景,对于不常用到的或者在不损失过多性能的前提下可以使用现有命令来实现的功能,Redis就不会单独提供命令来实现。这一原...

2015-01-25 20:30:39

阅读数 5454

评论数 1

Redis研究(十六)—发布/订阅模式

在上一篇中我们写了Redis的任务队列。         除了实现任务队列外,Redis还提供了一组命令可以让开发者实现“发布/订阅”(publish/subscribe)模式。“发布/订阅”模式同样可以实现进程间的消息传递,其原理是这样的:         “发布/订阅”模式中包含两种角色,分...

2015-01-25 11:21:32

阅读数 3048

评论数 1

Redis研究(十五)—任务队列

在网站开发中,当页面需要进行如发送邮件、复杂数据运算等耗时较长的操作时会阻塞页面的渲染。为了避免用户等待太久,应该使用独立的线程来完成这类操作。不过一些编程语言或框架不易实现多线程,这时很容易就会想到通过其他进程来实现。设想有一个进程能够完成发邮件的功能,那么在页面中只需要想办法通知这个进程向指定...

2015-01-25 10:58:40

阅读数 3416

评论数 1

Redis研究(十四)—管理工具

工欲善其事,必先利其器。在使用Redis的时候如果能够有效利用Redis的各种管理工具,将会大大方便开发和管理。 一、 redis-cli       相信大家对redis-cli已经很熟悉了,作为Redis自带的命令行客户端,你可以从任何安装有Redis的服务器中找到它,所以对于...

2015-01-24 22:28:44

阅读数 3845

评论数 2

Redis研究(十三)—安全和通信协议

一、安全       Redis的作者Salvatore Sanfilippo曾经发表过Redis宣言,其中提到Redis以简洁为美。同样在安全层面Redis也没有做太多的工作。 1、可信的环境       Redis的安全设计是在“Redis运行在可信环境”这个前提下做出的,在生产环境运行时不...

2015-01-24 20:37:01

阅读数 3662

评论数 1

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