关闭
当前搜索:

[置顶] 每日反思

从事任何技术研究,不知道该干什么的时候,就问自己四个问题: •这个方向上最新进展是什么? 都知道吗? •这个方向上最著名的专家有哪些?他们的研究都看过吗? •这个方向上最著名的技术社区有哪些?精华帖都看过一遍吗? •这个方向上最重要的文章、工具有哪些?文章都看过吗?工具都分析过吗?...
阅读(685) 评论(0)

使用MongoDB实现消息队列的异步消息功能

一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。 自己实现一个较完善的消息队列要考虑高可用、顺序和重复消息、可靠投递、消费关系解...
阅读(107) 评论(0)

AVL树的实现

前面笔者介绍了二叉搜索树的一般实现和平衡二叉树的实现原理。 本篇文章将继续前文的平衡搜索树来介绍一种具体的平衡搜索树—AVL树。AVL树的特性AVL树中,对于任一节点V,其左右子树的高度差不能超过1。这个高度差定义为平衡因子。...
阅读(87) 评论(0)

平衡二叉搜索树的实现原理

二叉搜索树的树高与性能前面笔者介绍了二叉搜索树的实现和性能分析,查询,插入和删除等操作均线性正比于二叉树的高度。在最坏的情况下,线性表退化为列表,二叉搜索树的性能会降低至O(n)。因此,如果能控制树高,则二叉搜索树的性能会明显提升理想平衡与适度平衡理想平衡既然二叉搜索树的性能主要影响与树高,则应该在节点数目固定的前提下,尽可能降低树高。也意味着,应尽可能地使兄弟子树的高度彼此接近,即全树尽可能的平衡...
阅读(73) 评论(0)

二叉搜索树基本操作的实现

对线性表比较熟悉的读者会很清楚线性表的查找性能。无论是链式存储或是顺序存储,在最坏情况或是平均情况下都查需要线性时间。另外,对于堆和栈两种特殊的线性表甚至不提供对任一元素的查找接口。因此,若需要对象集合的组成可以高效地动态调整,又能高效的查找,则线性表很难胜任。高效率的动态修改和高效率的静态查找,是否能够兼顾?如果能,需要采取什么样的数据结构。笔者接下来的几篇博文,将回答这个问题。...
阅读(137) 评论(0)

从最小支撑树和最短路径树学习图的优先级搜索

前面笔者介绍了图的广度优先搜索算法和图的深度优先搜索。这两种搜索虽然各有特点,但基本结构却几乎相同。都需要通过迭代逐一发现各顶点,将其归纳到遍历树中做相应的处理。两种算法的唯一差别在于,如何选取下一个节点的问题。如果将选取下一节点的策略抽象为获取优先级最高的节点,则对于BFS或是DFS则可统一处理,他们的区别仅在于更新节点的优先级的策略不同而已。根据优先级来遍历,称为优先级搜索。...
阅读(173) 评论(0)

图的拓扑排序及其应用

拓扑排序的定义对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。...
阅读(177) 评论(0)

图的深度优先搜索算法并生成DFS树

前面一篇文章介绍了图的广度优先搜索算法和BFS树,这篇文件笔者将介绍另一种图的遍历算法-深度优先算法概述深度优先搜索(Depth-First Search,DFS)选取下一顶点的策略,可概括为:优先选取最后一个被访问到的顶点的邻居。以顶点 s 为基点的 DFS 搜索,将首先访问顶点 s;再从 s 所有尚未访问到的邻居中任取其一,并以之为基点,递归地执行 DFS 搜索。...
阅读(349) 评论(0)

图的广度优先搜索算法并生成BFS树

笔者在前面的两篇文章中介绍了图的两种实现方法: 图的邻接表的实现 图的邻接矩阵的实现 接下来笔者将介绍图遍历算法...
阅读(310) 评论(0)

图的邻接表的实现

上篇文章介绍了图的邻接矩阵的实现,本文即介绍图的另一种实现方法-邻接表...
阅读(151) 评论(0)

图的邻接矩阵的实现

对于图的一些基本概率和术语的内容汗牛充栋,故本文不会做过多解释。仅仅总结下笔者学习图的邻接矩阵的相关知识邻接矩阵的实现原理邻接矩阵(adjacency matrix)是图ADT最基本的实现方式,使用二维数组A[n][n]来表示由n个顶点构成的图。...
阅读(213) 评论(0)

二叉树的链式存储实现及遍历

关于二叉树链式存储和遍历...
阅读(148) 评论(0)

二叉树的顺序存储实现及遍历

关于二叉树的实现,常见的大概有三种实现方法: 顺序存储:采用数组来记录二叉树的所有节点 二叉链表存储: 每个节点保留一个left,right域,指向左右孩子 三叉链表存储: 每个节点保留一个left, right, parent域,指向左右孩子和父亲 本文将实现顺序存储来实现一个二叉树并介绍其遍历方法...
阅读(361) 评论(0)

CPU load过高产生的原因及排查

之前面试被问到,造成CPU load过高的原因有哪些?如何快速排查其原因? 开一贴,总结该相关知识...
阅读(1226) 评论(0)

理解HTTP缓存和304状态码

最近研究nginx日志的时候,对于304这个状态码产生了好奇。之前一直知道3XX系列的状态码表示重定向,但对于304的具体原理没有仔细研究过。304 的标准解释是:客户端有缓冲的文档并发出了一个条件性的请求。服务器告诉客户端,原来缓冲的文档还可以继续使用。完成这个几个动作包括服务器确认返回304给予客户端,主要包含几个http头信息,请求头If-None-Match、响应头ETag和响应头Cache...
阅读(1432) 评论(0)

一致性hash算法 - consistent hashing

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛...
阅读(351) 评论(0)
181条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:591611次
    • 积分:7087
    • 等级:
    • 排名:第3838名
    • 原创:168篇
    • 转载:13篇
    • 译文:0篇
    • 评论:100条
    博客专栏
    最新评论