一个看上去是bug却是正确插入排序变种 看到一个有意思的排序算法,一开始看上去像是冒泡排序写错了。但实际上却是正确的排序算法,做个分析。文章链接 本质上是一个插入排序算法 算法 算法介绍 未知排序算法 不知道这个什么语言,但逻辑是清楚的。 ... 10月16日 编程开发 发表评论 阅读全文
BloomFilter(布隆过滤器)学习笔记 看到一个集合查找的面试题,想起这个算法。 前言 一个面试题 现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。 如果int是32位或以下,这个... 09月25日 编程开发 发表评论 阅读全文
分布式系统使用坐标系分析Paxos算法 使用时间和提案编号组成的坐标系来分析Paxos算法,希望能为你带来更直观的感受,使Paxos算法更加易懂。 前言 建议先阅读Paxos算法学习笔记。然后将算法流程代入图中,分析算法在两个阶段中可能发生... 08月19日 发表评论 阅读全文
Paxos算法的数学归纳法证明 本文是对Paxos算法的证明,如有错误请指正。 预备知识 表面上看,Paxos像是一个Quorum算法再加上二阶段提交(2PC)。但并非是的二者相加。 相关笔记 Quorum算法学习笔记 数学归纳法 ... 08月15日 分布式系统 发表评论 阅读全文
燃烧木棍确定时间的面试题 微博上看到的一道面试题,思维类的题目。 题目 一屋子的长短粗细不同密度不均的木棍儿,每根烧完都恰好需要1个小时。你有打火机,让你在屋子里想办法45分钟后准时出来,该怎么办。 点击查看答案 分析 要实现... 01月21日 编程开发 发表评论 阅读全文
编程开发取模和与运算的优化 //来自coolshell的一个代码。 int steps = 64 * 1024 * 1024; // Arbitrary number of steps int lengthMod = arr.L... 06月18日 发表评论 阅读全文
微软编程之美2014初赛第一场解题报告 题目1 : 焦距 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 一般来说,我们采用针孔相机模型,也就是认为它用到的是小孔成像原理。 在相机坐标系下,一般来说,我们用到的单... 04月19日 编程开发 发表评论 阅读全文