随笔分类 - Algorithm
算法
摘要:前言 上一篇文章实现了 Java RSA的分段加解密 ,这里我们介绍在 Vue 项目中如何使用 RSA 分段解密,这里的加解密场景是: 后端私钥分段加密 - 前端公钥分段解密 前端如何使用公钥解密这里不做重复叙述,注重点是分段解密,有需要的参考之前的文章:RSA加密 - Vue 附上其他链接: RS
阅读全文
摘要:前言 RSA的 key 长度为 1024 用公钥加密比较长的字符串时会异常,这里介绍 java 如何对长文本进行分段加密 附上其它链接: RSA加密 - Java RSA加密 - Vue RSA分段解密 - Vue 具体实现 实现类 import com.alibaba.fastjson.JSONO
阅读全文
摘要:前言 使用链表实现队列,需要队首指向队列头部管理数据出对,队尾指向队列尾部管理数据入队。 具体实现 队列接口 public interface Queue<T> { /** * 元素入队 * @param t */ void enqueue(T t); /** * 元素出队 * @return */
阅读全文
摘要:前言 使用自定义链表实现栈,自定义链表的实现:链表 具体实现 栈接口 public interface Stack<T> { /** * 添加元素 * @param t */ void push (T t); /** * 元素出栈 * @return */ T pop(); /** * 查看栈顶元素
阅读全文
摘要:前言 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 具体实现 实现类 public class LinkedList<T> { /** * 链表节点 */ private class
阅读全文
摘要:前言 上一篇博客RSA加密 - Java实现了Java版的RSA公钥加密-私钥解密,私钥加密-公钥解密,这篇博客实现Vue下的加解密,记录两种前后端下加解密的场景 前端公钥加密 - 后端私钥解密 后端私钥加密 - 前端公钥解密 附上其他链接: RSA加密 - Java RSA分段加密 - Java
阅读全文
摘要:前言 简介 RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 原理 根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用
阅读全文
摘要:前言 Deque (double-ended queue,双端队列)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 具体实现 实现类 public class Deque<T> { /** * 数组 */ private T[] data;
阅读全文
摘要:前言 循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。其将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到第一个位置
阅读全文
摘要:前言 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 具体实现 接口 public interface Queue<T> { /**
阅读全文
摘要:前言 栈(Stack)是一种用于存储数据的简单数据结构,是一种特殊的线性表,是一种后入先出的数据结构,其插入和删除操作只允许在线性表的一端进行,一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Po
阅读全文
摘要:前言 动态数组是指在声明时没有确定数组大小的数组,可以在任何时候改变大小,使用动态数组的优点是可以根据用户需要,有效利用存储空间。 具体实现 自定义泛型动态数组 public class Array<T> { private T[] data; private int size; /** * 构造函
阅读全文
摘要:前言 插入排序是一种简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。 具体实现 实现类 public class Ins
阅读全文
摘要:前言 选择排序是一种简单直观的排序算法,其算法步骤:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小元素放到已排序序列的末尾,直到所有元素均排序完毕。 具体实现 实现类 public class SelectionSort { /** * 私有构造函数,该类
阅读全文
摘要:前言 线性查找又称顺序查找,是一种最简单的查找方法,其基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的值相等,则查找成功;若比较结果与文件中的记录都不等,则查找失败。 具体实现 实现类 public class LinearSearch { /** * 私有构造函数,该类不被别人创建,
阅读全文

浙公网安备 33010602011771号