
算法与数据结构
文章平均质量分 58
Kaho Wang
Java 后端开发
努力努力再努力
展开
-
【密码学】Vigenere 维吉尼亚算法加解密
实验目的与要求 1、 理解维吉尼亚密码算法原理。 2、 编程实现维吉尼亚密码算法。 实验原理 例:明文为 wearediscovered,密钥为 deceptive,密文为 ZICVTWQNGRZGVTM。 实验内容 采用自己熟悉的编程语言实现维吉尼亚密码算法,正确完成加解密。 实验步骤与结果 根据算法原理可知,维吉尼亚算法的加密和解密过程实际是就是对明文(密文)的每一位根据所给密钥进行移位(做加法/减法)而得出其对应的密文(明文)。 加密:C = P + K (mod 26) 解密:P = (C - K原创 2022-01-29 20:26:37 · 13070 阅读 · 0 评论 -
【密码学】扩展欧几里得算法与中国剩余定理
实验目的与要求 利用扩展欧几里得定理计算乘法逆元。 理解并掌握中国剩余定理。 原理 实验内容 实验步骤与结果 实现本次实验所用的环境为jdk1.8下的Java代码,代码测试结果在最下面。 由于扩展欧几里得定理和中国剩余定理都要基于求最大公因数的方法getGcd(),这里附上相关代码: /** * 最大公因数计算方法:辗转相除法 * @param a * @param b * @return 最大公因数 */ public static原创 2022-01-29 20:15:49 · 1578 阅读 · 1 评论 -
数据结构---顺序表实验(C语言实现)
顺序表实验实验目的实验内容问题描述算法实验代码示例程序运行示例输入无错误信息的情况:人为制造错误信息的情况: 实验目的 1.掌握线性表的基本原理; 2.掌握顺序表的存储结构; 3.掌握顺序表的创建、查找、插入、删除的实现方法; 实验内容 问题描述 在给出一组初始数据的情况下,实现顺序表的定义、创建、查找、插入、删除。 算法 顺序表的定义:一维数组、最大长度、实际长度 顺序表的创建:初始化顺序表 顺序表的查找:给出位置 i 的数据 顺序表的插入:位置 i 和后面的数据全部后移一位;在指定的位置 i 插入一个数原创 2020-10-29 00:36:40 · 4912 阅读 · 0 评论 -
Java语言实现线性查找和二分法查找
Java语言实现线性查找和二分法查找 (查找算法) 线性查找(顺序查找) 定义: 在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程。 本质: 如果查找池是某种类型的一个表,比如一个数组,简单的查找方法是从表头开始,一次将每一个值与目标元素进行比较。最后,或者查找到目标,或者达到表尾,而目标不存在于组中,这个方法称为线性查找。 代码示例: public class SearchAlgorithm { public static void main(String[] args原创 2020-09-27 17:40:46 · 4336 阅读 · 0 评论