11 2019 档案

摘要:斐波那契数列定义 Fibonacci array:1,1,2,3,5,8,13,21,34,... 在数学上,斐波那契数列是以递归的方法来定义: F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2) 用文字描述,就是斐波那契数列由0和1开始,之后的斐波那契系数就是由之前的 阅读全文
posted @ 2019-11-30 07:43 evenleo 阅读(1668) 评论(0) 推荐(0)
摘要:前言 最近研究一个工具库需要用 jemalloc 做内存分配器,但在 ubuntu 下安装过程中遇到很多问题,故记下安装过程的笔记,避免以后遇到在这上面浪费时间。 安装过程 环境:VMware Ubuntu 18.04.3 LTS cd ~/桌面 wget https://github.com/je 阅读全文
posted @ 2019-11-29 21:54 evenleo 阅读(9105) 评论(0) 推荐(0)
摘要:八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不 阅读全文
posted @ 2019-11-28 07:46 evenleo 阅读(2829) 评论(0) 推荐(1)
摘要:前言 哈夫曼编码是一种贪心算法和二叉树结合的字符编码方式,具有广泛的应用背景,最直观的是文件压缩。本文主要讲述如何用哈夫曼编解码实现文件的压缩和解压,并给出代码实现。 哈夫曼编码的概念 哈夫曼树又称作最优树,是一种带权路径长度最短的树,而通过哈夫曼树构造出的编码方式称作哈夫曼编码。 也就是说哈夫曼编 阅读全文
posted @ 2019-11-26 22:33 evenleo 阅读(7786) 评论(1) 推荐(2)
摘要:打印树形结构初衷 树形结构是算法里很常见的一种数据结构,从二叉树到多叉树,还有很多变种。每当需要程序员自己手动实现树形结构时,因为结构本身的复杂性,不容易调试验证。但一般的调试对树形数据结构的整体把控十分有限,甚至会让人迷失在一大堆的调试信息海洋里。如果能够将数据树形打印出来,那么我们理解树形结构的 阅读全文
posted @ 2019-11-21 07:55 evenleo 阅读(3056) 评论(0) 推荐(1)
摘要:计算月末最后一天 /* * 输入年月格式YM(如:201911),输入该月最后一天 */ int monthEndDay(int YM) { int endDay; int Y = YM / 100; int M = YM % 100; if (2 == M) { if (0 == Y % 400 阅读全文
posted @ 2019-11-14 15:03 evenleo
摘要:背景 C++多线程编程中通常会对共享的数据进行写保护,以防止多线程在对共享数据成员进行读写时造成资源争抢,导致程序出现未定义或异常行为。通常的做法是在修改共享数据成员时进行加锁(mutex)。在使用锁时通常是在对共享数据进行修改之前进行lock操作,在写完之后再进行unlock操作,但经常会出现lo 阅读全文
posted @ 2019-11-14 08:11 evenleo 阅读(1357) 评论(0) 推荐(1)
摘要:链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。作为一种常用的数据结构,链表内置在很多高级编程语言里面。既比数组复杂又比树简单,所以链表经常被面试官用来考察面试者的编程基本功。因此,链表是程序员必须熟练掌握的数据结构之一。近日在LeetCode上刷 阅读全文
posted @ 2019-11-11 22:28 evenleo 阅读(866) 评论(0) 推荐(0)
摘要:在 redis 源码中 dictScan 算法中用到了用到了非常经典的二进制反转算法,该算法对二进制的反转高效而实用,同时对于理解位运算也有非常大的帮助。先呈现源码: /* Function to reverse bits. Algorithm from: * http://graphics.sta 阅读全文
posted @ 2019-11-11 07:46 evenleo 阅读(588) 评论(0) 推荐(0)