分类: 算法

编程中遇到的一些算法

7 篇文章

帽子问题
面试题 今天看到在微信上有人发了这一道数学题,题目如下: 我当时看到这题一眼就认为答案是c(用的是排除法),然后我就分析了一下,发现这个题最重要的条件并不在题设中。这个条件就是:当不确定的时候不会有人举手。那我们来分析一下当时情况(每个人的想法):第一轮举手前:A:傻x老师,整个墙干嘛,我啥也看不见,还有D能看到2个人是怎么回事,偏心吗?B:傻x老…
邮件分类的难题–一致性哈希算法
问题: 小明是邮局的人事部,主要管给邮件分类的人员。最近人员调动比较大,导致遇见了以下难题。目标:确定每个员工要处理的邮件省份的分配策略。条件:1)一个员工如果长时间处理相同省份的邮件,分类效率会提高。 2)随时有员工离职或者加入,要求实时分配任务。 分析: 问题一看就是明白是散列直接的对应问题(省份散列->员工散列),很明显的应该用哈希算法…
LZ77压缩算法
LZ77算法的说明网上很多,本文为个人见解,仅供参考。 本人认为LZ77算法其实是字典压缩的一个变种,与字典压缩不同的是,它的字典是动态生成的并且只有一个,一般选取一定数量的最近压缩过数据。保存这些数据的结构叫做滑动窗口,所以LZ77有被常称作滑动窗口算法。至于这么生成字典的原因,其实很简单,因为我们认为一个要压缩的字符串很有可能与上下文相关,也就…
php的AES的算法实现
class.Aes.php <?php class Aes { /** * AES Cipher function: encrypt 'input' with Rijndael algorithm * * @param input message as byte-array (16 bytes) * @param w key schedule…
AES算法优化
优化思路 算法优化主要就是在矩阵相乘中,优化的方式也很简单,就是空间换时间。 AES算法的矩阵是有特点的,矩阵如下: 02  03  01  01 01  02  03  01 01  01  02  03 03  01  01 …
AES算法的java实现
java其实本身自带了Aes的实现。这里程序只是作为交流吧。有问题多多指正。算法不懂的可以看这里。 public class AES { public static final byte[] sBox= { (byte)0x63,(byte)0x7c,(byte)0x77,(byte)0x7b,(byte)0xf2,(byte)0x6b,(…
AES原理(Rijndael算法)
​上周好几天都在搞AES,总算是把Rijndael算法搞明白了。包括密钥扩展,ByteSub(字节代换),ShiftRow(行移位),MixColumn (列混合),AddRoundKey的过程分析。本片会仔细介绍AES(Rijndael算法),后两篇会介绍AES的java实现和php实现。 AES(Rijndael算法) Rijndael算法首先…