数据结构&算法
.
DwD-
这个作者很懒,什么都没留下…
展开
-
【密码学】基于英文字母自然统计规律破解凯撒算法加密
1. 前言凯撒密码是一种古老的加密算法,至今也被应用在某些加密算法的过程中。一般而言,破解凯撒密码需要密钥,但是由于加密空间太小,解密可以穷举进行。因此本文给出了一种基于统计的解密算法,这种算法思想也可以应用到其他场合。2. 算法2.1 凯撒加密算法凯撒加密算法是采取字母移位的思路进行,加密公式如下:word = (word + x) mod 26根据鸽巢原理可知,穷举26次必然能得到加密原文。2.2 基于统计分析解密算法算法求解前提假设:加密原文符合英文字母自然统计规律.原创 2020-05-19 23:47:34 · 2428 阅读 · 0 评论 -
【算法】递归设计以及优化技巧
递归的难点在于构造而不在于求解,一个良好的递归算法的实现,其实是需要很多技巧的。首先,递归的组成部分包含递归边界与递归式。前者是边界条件,任何递归如果想有结果,就必须要有边界,后者是递推关系,可以理解为状态转移函数。让我们先看一段代码来体验递归的快感://求最大公因数int gcd(int x,int y){ if(y==0)return x; return ...原创 2020-05-26 21:42:16 · 401 阅读 · 0 评论 -
【算法】完全掌握Two Pointer(双指针&尺取法)详解&例题
1.前言Two Pointer(双指针)有两种移动方式,一种相向移动,一种同向移动。这里我们讨论同向移动的双指针,这种算法又名尺取法,最终的时间复杂度一般是线性的,是一种广泛应用的算法技巧。2.应用场景Two Pointer解决的问题形式一般都是一个区间内满足某种性质的最优解。尺取法的求解过程就像一只移动的毛毛虫,每次交替移动L、R指针,在移动指针的过程中更新求得的解。由于L,R都...原创 2020-05-26 21:35:20 · 1347 阅读 · 0 评论