自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 夜深人静写算法(十五)- 霍夫曼编码

* 众所周知,计算机中数据的存储和传输的最小单位是字节(byte),一个ASCII 码占用 1 个字节, 每个字节为 8 个比特位(Bit);例如,字符 'e' 的二进制表示为 01100101; * 进程间通信传输字节流的过程中,为了节省带宽,往往会对传输的数据进行压缩。 *...

2020-05-30 00:19:21 39476 0

原创 基于自己项目的 lua 代码规范和一些书写的注意事项总结

目录 一、逻辑和数据 1、逻辑数据分离 2、逻辑的清晰性 3、逻辑的共性 4、数据的聚合性 5、数据的序列化 和 反序列化 二、常量 1、幻数(magic number) 2、枚举 3、增加枚举类型时的可行性 三、函数 1、函数命名的规则 2、函...

2019-04-15 07:38:59 78269 0

原创 Redis底层详解(八) LRU 算法

一、LRU 算法概述          1、LRU 概述          LRU 是 Least Recently Used 的缩写,即最近最少使用,是内存管理的一种页面置换算法。算法的核心是:如果一个数据在最近一段时间内没有被访问到,那么它在将来被访问的可能性也很小。换言之,当内存达到...

2019-02-11 13:16:39 135932 2

原创 Redis底层详解(七) HyperLogLog 基数估计

  一、HyperLogLog 概述          HyperLogLog 算法一种概率算法,用来实现大数据下的基数估计,即无法精确计算集合的基数,存在一定偏差。具体的算法实现可以参见我写的另一篇文章:夜深人静写算法(十四)- 基数估计 (Cardinality Estimation)...

2019-01-14 19:54:02 21884 0

原创 夜深人静写算法(十四)- 基数估计 (Cardinality Estimation)

目录 一、概述       1、最小值估值法       2、哈希法       3、k-前缀法 二、Linear Counting       1、算法思路       2、算法证明 三、LogLog Counting       1、算法思路       2、算法证明       3、误差消...

2019-01-12 18:56:42 160295 1

原创 Linux 修改系统时间

一. date 查询当前时间 [root@localhost ~]# date -R Sat, 01 Jan 2000 12:02:12 -0400         后面的那个 -0400 表示时区,需要用 tzselect 进行设置。   二. tzselect 设置时区    ...

2019-01-04 12:17:51 167530 0

原创 Leetcode - MYSQL 专题

Leetcode - MYSQL 专题         花了点时间把 Leetcode 上 SQL 部分的 非付费题 做了一下,很多例题还是很经典的~所有复杂逻辑都可以在一条语句里面完成。体会到了 select 语句的博大精深。         主要涉及到的点有:select别名、select多...

2018-12-21 08:01:42 187693 3

原创 Redis底层详解(六) 跳跃表

一、跳跃表概述        跳跃表是有序集合的底层实现之一。        1、跳跃表结点        跳跃表的结点 zskiplistNode 定义在 server.h 中,定义如下: typedef struct zskiplistNode { robj *obj; ...

2018-12-18 23:55:52 191793 1

原创 Redis底层详解(五) 压缩列表

一、压缩列表概述        压缩列表是一种编码过的“链表”旨在实现高效的内存管理。它可以存储整数和字符串,整数以小端序存储,字符串则以字节数组存储。压缩列表的内存存储结构如下图所示:        其中zlbytes、zltail、zllen 是 压缩列表头( ziplist he...

2018-12-12 08:04:04 198216 3

原创 Redis底层详解(四) 整数集合

一、集合概述         对于集合,STL 的 set 相信大家都不陌生,它的底层实现是红黑树。无论插入、删除、查找都是 O(log n) 的时间复杂度。当然,如果用哈希表来实现集合,插入、删除、查找都可以达到 O(1)。那么为什么集合要用红黑树和没有用哈希表呢?我想,最大的可能是基于集...

2018-12-03 07:42:57 214784 0

原创 字节序

字节序         最近在看 redis 的内存编码,里面涉及到字节序相关的内容。这里就当复习一下,做个简单的回顾。         数据存储在内存中,是以字节为单位的,如果是单字节数据(如char、unsigned char、int8)就不会有字节序的问题。但是多字节数据(如 int、f...

2018-11-30 10:03:52 198105 0

原创 Linux 下 Apache 的安装与配置

1、安装APR (Apache Portable Runtime) wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz tar -zxf apr-1.4.5.tar.gz cd apr-1.4.5 ./configure --pr...

2018-11-30 07:42:29 198242 0

原创 Redis底层详解(三) 内存管理

一、内存分配概述         redis 的内存分配,实质上是对 tcmalloc / jemalloc 的封装。内存分配本质就是给定需要分配的大小,以字节为单位,然后返回一个指向一段分配好的连续的内存空间的首指针。         通过这个首指针,我们需要知道它的连续空间的大小,才能进...

2018-11-29 07:45:47 195838 0

原创 Linux 的 mysql 安装

一、mysql 安装        1、下载        版本选择5.6.33,linux环境,centos6.8。 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.t...

2018-11-19 08:54:30 202837 0

原创 rsync文件同步

目录 一、rsync 简介 二、rsync 下载、安装 三、rsync 服务器端部署 四、rsync 客户端上传文件 五、参考资料   一、rsync 简介        rsync 用于两台主机间的文件同步,需求是内网可以访问外网,但是外网不能直接访问内网。所以需要一个机制将内网的源码(...

2018-11-13 14:26:12 199654 0

原创 Redis底层详解(二) 字符串

一、sds字符串概述         sds 字符串即 Simple Dynamic String(即简单动态字符串),其中动态的含义是内存的分配是动态的,sds的定义如下:        它采用一段连续的内存来存储 sds 结构。和普通字符串 char* 不同,sds 是二进制安全的...

2018-07-23 08:07:47 210317 0

原创 Redis底层详解(一) 哈希表和字典

一、哈希表概述        首先简单介绍几个概念:哈希表(散列表)、映射、冲突、链地址、哈希函数。        哈希表(Hash table)的初衷是为了将数据映射到数组中的某个位置,这样就能够通过数组下标访问该数据,提高数据的查找速度,这样的查找的平均期望时间复杂度是O(1)的。 ...

2018-06-28 17:27:37 219483 9

原创 利用 telnet 调试 skynet

目录  一、安装 telnet二、关闭防火墙      1、三、配置samba      1、四、windows本地映射一、安装 telnet    1、安装必要的软件包yum install -y memcached yum install -y telnet yum install -y te...

2018-06-13 10:58:43 201944 0

原创 svn clean up 失败的解决方案

       开发时可能会遇到一些特殊情况,导致 svn 无法提交/更新(commit/update),并且提示需要 clean up,但是 clean up 又出现图一所示的错误。图一       这种情况下,我们可以下载一个 sqlite3.rar 。解压后,将 exe 文件放在出现问题的 s...

2018-06-06 14:22:48 206961 0

原创 samba本地映射配置

目录  一、安装samba二、关闭防火墙      1、windows防火墙      2、selinux防火墙三、数论基础      1、同余      2、欧几里德算法      3、互素      4、扩展欧几里德算法            a、线性同余            b、逆元   ...

2018-05-18 11:07:30 200468 2

原创 夜深人静写算法(十三)- RSA算法的加密与解密

目录  一、概述      1、加密与解密      2、对称性加密与非对称性加密二、RSA算法流程      1、算法原理      2、公钥和私钥的生成      3、RSA加密      4、RSA解密      5、快速幂取模三、数论基础      1、同余      2、欧几里德算法  ...

2018-04-25 21:39:13 204800 0

原创 夜深人静写算法(十二)- 模拟退火

随机界的星星之火---模拟退火!

2018-04-03 20:27:22 209021 2

原创 解题报告 (三) Manacher算法

回文子串         回文分为奇数回文和偶数回文,即字符串的长度为奇数还是偶数。其实只需要讨论奇数的情况,即以某个字符为中心,左右两边的字符按照中心对称的情况(偶数的情况可以通过本文末尾的方法转换成奇数的情况)。   最长回文子串         朴素算法         枚举每个字...

2018-03-27 21:27:36 207725 0

原创 解题报告 (五) Burnside引理和Polya定理

Burnside引理   笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念。后来慢慢从Polya定理开始,做了一些题总算理解了。本文将从最简单的例子出发,解释Burnside引理和Polya定理。然后提供一些自己做过的和上述定理相关的题目和解题报告。 ...

2018-03-20 21:09:06 208122 4

原创 夜深人静写算法(十一)- 最小包围球

二维点集的最小覆盖圆、三维点集的最小包围球

2018-03-12 18:56:55 208632 3

原创 解题报告 (二) 强连通和2-sat

有向图强连通分量 和 2-sat适定性问题

2018-03-09 12:37:19 205471 1

原创 夜深人静写算法(十)- 有向图强连通和2-sat问题

有向图强连通分量和2-sat问题

2018-03-01 22:19:40 208966 9

原创 解题报告 (四) 中国剩余定理

中国剩余定理 中国剩余定理,求的是模线性方程组的通解,如图1所示,其中(mi, ai)都是已知量,x是未知量。需要求的就是x,让它满足以下n个等式: 图1 举个最简单的例子,如图2所示,x满足三个同余方程,我们可以将三个方程进行一个转化。 图2 很明显,图2和图3的方程组等价,图3表...

2018-02-20 19:58:46 211202 2

原创 夜深人静写算法(九)- Dancing Links X(跳舞链)

双向十字交叉循环链表求解精确覆盖、重复覆盖。 骨牌覆盖、N皇后问题的高效解法。

2018-01-31 19:56:44 214259 14

原创 解题报告 (一) Dancing Links X

Dancing Links、数独、精确覆盖、重复覆盖

2018-01-28 21:14:03 207504 1

原创 夜深人静写算法(八)- 朴素贝叶斯分类

朴素贝叶斯分类算法:基于概率的经典分类算法

2018-01-04 21:21:22 211390 4

原创 夜深人静写算法(七)- 线段树

线段树:对数时间完成更新、查询的数据结构

2018-01-04 12:49:08 218050 14

原创 夜深人静写算法(六)- 最近公共祖先

最近公共祖先问题:树形结构优化问题,同时讲解并查集的RMQ的妙用

2017-12-29 19:18:06 209569 3

原创 夜深人静写算法(五)- 初等数论

初等数论:扩展欧几里得算法,中国剩余定理,欧拉函数,容斥原理,大数判素

2017-12-28 15:33:22 211388 5

原创 夜深人静写算法(四)- 最短路和差分约束

差分约束系统:数形结合,将复杂代数问题不等式组()转换为最短路求解

2017-12-28 15:24:29 218603 6

原创 夜深人静写算法(三)- 树状数组

树状数组:经典统计算法,单点更新,成段求和的一种优化数据结构

2017-12-28 15:07:32 210886 3

原创 夜深人静写算法(二)- 动态规划

动态规划入门:初学者

2017-12-28 14:57:36 215844 12

原创 夜深人静写算法(一)- 搜索入门

搜索入门:深度优先搜索(记忆化、剪枝、IDA*)、广度优先搜索(A*、双向广搜)

2017-12-28 14:43:02 213525 6

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