Red-Black Tree
相比Avl Tree,Red-black Tree的操作复杂很多,不过网上优秀的文章也很多。这篇文章参考[简书某博客][https://www.jianshu.com/p/e136ec79235c]
写成的,文章中的配图大部分也是原博客上的。
定义
红黑树需要满足以下四个性质:
每个节点要么是黑 ...
DES加密解析
我又来填坑了,这篇文章主要是来解析一下DES算法是如何实现加密解密。本文主要参考的是 J.Orlin Grabbe 的《DES Algorithm Illustrated》
密钥创建
首先我们需要一个64位的密钥作为 key_seed。
比如,我们的十六进制密钥 K 为
1K = 0123456 ...
Binary Heap
这几天疯狂使用Binary Heap,所以打算写篇文章好好整理下这个数据结构。这个结构的 Insert 操作的时间复杂度是 O(n) ,但是他的 DeleteMin 操作能实现 O(1) 。因为完全二叉堆的结构很有规律,所以我们不需要用树结构来实现二叉堆,用数组即可。其中父节点在位置 i 上,左节点 ...
BPR算法
最近在学习推荐系统相关的知识,其中用到了贝叶斯推荐模型(Bayesian Personalized Ranking, BPR),故写此文讲讲BPR相关的知识。
BPR模型概念
BPR(Bayesian Personalized Ranking)推荐模型是基于贝叶斯后验优化的个性化排序算法。从use ...
求最短跳跃距离的最大值
这是一道很好玩的题。
题目描述
这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 NNN 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移 ...
手写数字识别
我们在学一门编程语言的时候,写的第一个程序往往是hello world。同样,手写数字识别是机器学习中,最入门的项目。
完整代码在文末,中间是代码每个部分的分析。
机器学习的基本思路
我们需要两个东西:
数据集
模型
调用的包
12345import torchfrom torch impor ...
To Fill or Not to Fill
This is an after class programming problem of ads. The main algorithm used is Greedy Algorithm
Description
With highways available, driving a car from ...
Huffman Code
写此文时正好ads要做和Huffman编码相关的题目,故抽了点时间实现了一个Huffman编码,并通过此文讲讲Huffman编码的算法原理。
What is Huffman Tree?
给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈 ...
Greedy Algorithm
What is Greedy Algorithm?
The Greedy Algorithm is to make the best choice at current stage when solving the problem. That is to say, instead of consid ...
AES加密解析
高级加密标准(Advanced Encryption Standard,AES)是当前最流行的对称加密算法,也是一种分组加密算法。于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。
什么是分组加密?
分组密码就是把明文分为固定长度的一组一组,每次 ...