摘要:
产生背景:高级加密标准AES(Advanced Encryption Standard)是在DES受到不断攻击威胁的背景下推出的。1997年4月15日,美国国家标准技术研究所(NIST)向全世界征集高级加密标准算法(主要指标:(1)安全性,(2)成本,(3)算法和实现特性等)。有5个候选算法进入了最 阅读全文
摘要:
3DES 分组密码:对于明文编码后的二进制序列,分组密码会将其划分成长度固定的组(块),每组分别在密钥的控制下转换成等长的密文分组。分组密码算法的安全策略中,用得最多的就是采用代换-置换网络(Substitution-Permutation Network),简称S-P网络,是由S变化(代换)和P变 阅读全文
摘要:
符号表应用 在计算机发展的早期,符号表帮助程序员从使用机器语言的数字地址进化到在汇编语言中使用符号名称;在现代应用程序中,符号名称的含义能够通行于跨域全球的计算机网络。快速查找算法曾经并继续在计算机领域中扮演着重要角色。符号表的现代应用包括科学数据的组织,例如在基因组数据中寻找分子标记或模式从而绘制 阅读全文
摘要:
哈希表 红黑树实现的符号表可以保证对数级别的性能,但我们可以做得更好。哈希表实现的符号表提供了新的数据访问方式,插入和搜索操作可以在常数时间内完成(不支持和顺序有关的操作)。所以,在很多情况下的简单符号表,用哈希表实现是最好的选择。 hash functions 如果键是小整数,那么我们可以直接使用 阅读全文
摘要:
编程作业五 作业链接: "Kd Trees" & "Checklist" 我的代码: "PointSET.java" & "KdTree.java" 问题简介 是平衡树的几何应用中介绍的 2d 树,不再过多描述,要求实现范围查找和最近邻居这两个功能。 任务摘要 Brute force impleme 阅读全文
摘要:
几何搜索 平衡搜索树(BST)在几何方面的应用,处理的内容变成几何对象,像点,矩形。 1d range search 先来看一维的情况,一维的范围搜索是后面的基础,处理的对象是在一条线上的点。这是符号表的一个小拓展,多了范围查找(range search) 和范围计数(range count)即希望 阅读全文
摘要:
平衡搜索树 前面介绍的二叉搜索树在最坏情况下的性能还是很糟糕,而且我们不能控制操作的顺序,有时根本就不是随机的,我们希望找到有更好性能保证的算法。 2 3 search trees 于是先来了解下 2 3 查找树,它可以保证树的平衡性,维护树高在 lgN 级别。这里的 2,3 指的是孩子的数目,图例 阅读全文
摘要:
优先队列 集合性质的数据类型离不开插入删除这两操作,主要区别就在于删除的时候删哪个,像栈删最晚插入的,队列删最早插入的,随机队列就随便删,而优先队列删除当前集合里最大(或最小)的元素。优先队列有很多应用,举几个见过的像:数据压缩的哈夫曼编码、图搜索中的 Dijkstra 算法和 Prim 算法、人工 阅读全文
摘要:
编程作业四 作业链接: "8 Puzzle" & "Checklist" 我的代码: "Board.java" & "Solver.java" 问题简介 借助优先队列,实现解决八数码(8puzzle)问题的 A 算法。 八数码问题就是下面这样,移动方块重排数字,最后使其有序,希望找到最少的移动次数。 阅读全文
摘要:
符号表 符号表是键值对的集合,支持给定键查找值的操作,有很多应用: API put() 和 get() 是最基础的两个操作,为了保证代码的一致性,简洁性和实用性,先说下具体实现中的几个设计选择。 泛型 我们在考虑方法时不指定在处理的键和值的类型,而是使用泛型。 重复的键 每个键只对应一个值(表里没有 阅读全文