HTTP 编年史
HTTP 协议作为应用层重要的网络协议,同时也随着时代的发展不断演进。从最初的 HTTP/0.9 到 HTTP/1.0 再到 HTTP/1.1 以至于到现在的最新版本 HTTP/2 。 每个版本的演进都是为了解决网络传输协议中的痛点,下面就来总结下每个版本到底都更新了些什么。 H
HTTP 协议作为应用层重要的网络协议,同时也随着时代的发展不断演进。从最初的 HTTP/0.9 到 HTTP/1.0 再到 HTTP/1.1 以至于到现在的最新版本 HTTP/2 。 每个版本的演进都是为了解决网络传输协议中的痛点,下面就来总结下每个版本到底都更新了些什么。 H
在前面讲到的Big-Oh算法复杂度分析的文章时,我曾经提到过主定理,既然主定理是奠定算法分析尤其是递归算法的理论基石,那么就有必要拿出来单独讲一讲,即使我们是属于拿来主义的工程派,理解使用工具的理论根据也是有益无害的吧?当然在最后我们会总结几个工程常用的分析算法复杂度的例子。
当系统设计师拿到需求,开始做系统设计,评估系统的负载、吞吐能力的时候,是需要有个大致的估算过程的。有经验的系统设计师会根据以往的经验,估算出一个范围。但这个数字真的只是拍脑袋得到的么?当然不是,其实每个操作都是有一个数值,拿到这些数值,分析、分解现有业务的操作就可以估算出这个系统
按照教科书的顺序来说,搜索相关的问题应该放在图的章节。但实际上这部分内容在树的遍历已经涉及,只是DFS和BFS是更通用的情况。首先不管是inorder、preorder还是postorder traversal,都是一种DFS,只是在图的一种特殊形式二叉搜索树上的一种特殊表现。讲
优先队列(PriorityQueue) 是一种抽象数据结构,队列内的元素都有对应的优先级,并根据其优先级出队。优先队列一般会使用堆(heap)来实现。 优先队列的一些操作基本操作 插入一个元素 查看队列第一个(堆顶)元素 取出队列第一个(堆顶)元素 对应的这几个操作的复杂度
很不幸,这几天由于macOS升级10.12.4的时候出现奇异的升级失败的现象。起初我并没有在意,但是多次升级仍然没有要好的意思,拨打Apple技术支持,经过技术支持的引导和检测发现引导区的坏道,可能会导致之后操作系统不可预料的后果。之后去Genius Bar检测排查硬件问题,最后
使用markdown写文章现在已经是我的标配,那你的呢?最近在学习MachineLearning的一些内容,做笔记、写文章的时候就会用到大量的数学公式,连加、连乘、矩阵运算神马的,所以慢慢的支持LaTex又成为我写作的硬需求。 工欲善其事,必先利其器。 所以找一个合适的编辑器
一说到Linked List你会想到什么?ArrayList? 看来你是个Java粉。其实Linked List 并非完全是Java集合包下的LinkedList类,而是一种很基础的数据结构,很多数据结构和算法都由它演化而来,在很多地方我们称它为链表。 链表的分类按照节点的指
虽然有些事情看的在近期没有什么效果,但是时间久了,终究还是会看出来的,那么你会问,到底什么东西是这样的呢? 比如才华、具体到技术来说就是数据结构和算法。树其实是一种很重要的数据结构,很多重要的算法都是基于这个算法展开的。 树的一些经典问题判断是否是一棵二叉搜索树原题传送门 Giv
树,尤其是二叉搜索树(Binary Search Tree => BST)是算法、数据结构领域重要的数据结构之一。那么既然BST这么重要,想要了解BST需要了解哪些方面呢? 树是什么鬼树(tree)是一种由节点(nodes)和无环向量(edges without havin