数据结构与算法
文章平均质量分 92
以数据结构与算法理论为基础,学习各个算法的应用场景,达到深入理解数据结构与算法
踩踩踩从踩
努力 加油 自律 学习 总结
展开
-
加密算法之对称加密(AES加密) 及在jdk中应用
加密算法之安全hash算法、RSA非对称加密算法分析前言之前分析过加密算法中hash算法和非对称加密算法(RSA)包括费马小定理和欧拉函数推导了一下,对加密算法有个大概的理解,素数的应用,继续分析一下对称加密算法,并且在jdk中的应用。AES概念AES算法又叫高级加密标准,...原创 2021-09-01 17:24:15 · 10555 阅读 · 0 评论 -
加密算法之安全hash算法、RSA非对称加密算法分析
前言数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,本篇会介绍各种加密算法。加密介绍第一类(SHA算法):根据明文签名进行加密得到密文,而密文不能被反推出来,而这种在银行用得很多,例如下图SHA hash独有得算法,算法可以有多种,根据每个人来算出来第二类(DES AES):明文得到密文,通过密文;然后服务端得到密文进行反推出来,一把钥匙第三类(RSA):叫做RSA算法加密,公钥..原创 2021-08-29 21:07:08 · 4278 阅读 · 1 评论 -
图论算法之AOE网
前言AOE网主要用在如何计算一个工程的完工时间,和优化工程方案减少工程完工时间;在实际开发过程中,会用到很多,作为现代管理中很重要的一部分,而aoe网的核心点在于如何求关键路径,这在本篇文章中会大量讲述aoe网概念在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这种有向图的边表示活动的网,我们称之为AOE网。没有入度的顶点称为始点或源点没有出度的顶点称为终点或汇点如下图开始,构造一个aov网从开始组装,到分别去造不同的零件,最后到组.原创 2021-08-22 14:23:54 · 5628 阅读 · 0 评论 -
图论算法之图形变化原理、aov网与拓扑排序
前言我们平时在动画或者图像显示中,使用的matrix去表示,而该表示来源于数学中的矩阵。而我们的图论中aov网,以及拓扑排序都是现实中比较常用的,因此本篇文章主要是为了描述出什么是图形变化以及aov网与拓扑排序这些思想。希望大家对这个有个清晰的概念图形变化原理常在android开发中有个matrix的概念用来绘制图画及图像,因此学习图形变换首先需要了解什么是矩阵,矩阵的加减乘除...原创 2021-08-21 10:51:35 · 636 阅读 · 0 评论 -
八大内部排序算法之希尔、堆排序、插入排序算法
前言我们所知的八大内部的排序算法有冒泡排序、选择排序、快速排序、归并排序、链式基数排序、插入排序、希尔排序、堆排序、而这篇文章主要研究这其中的希尔排序和堆排序算法,之前的排序算法都在下面连接中介绍过,因此不在过多的赘述线性表之顺序存储结构与链式存储结构 及 应用五大经典算法-分治法 及其应用二分查找 、快速排序、递归排序插入排序插入排序顾名思义直接插入,打掉一个放一个在放数据时,直接进行排序,这样一描述是不是对于小数据量的数据排序效率还是很高的首先拿出一个进行比较排序进行比较.原创 2021-08-14 16:57:59 · 324 阅读 · 0 评论 -
五大经典算法之回溯法及其应用
前言 回溯法是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”,这就是回溯法的定义;这个和穷举法有些关联,都在不断的试探;而下面从从九宫格、八皇后、数独问题、来理解回溯法回溯法的应用九宫格问题 我们要将4或者9个数或者16个数 n的n次方个数放入九宫格中,使得所有斜线和直线的数相加都等于相同的值,怎么解决这个问题;这就...原创 2021-08-09 21:56:06 · 2206 阅读 · 0 评论 -
java生成多个随机数的和为固定值
前言在开发一些办公类的系统中,我会遇到这种需求,需要生成随机分数和权重,权重的和是固定的,并且不同的项目有多个权重,这是不确定的。因此就有这种逻辑也就是需要生成多个随机数,和是固定为某个值,因此需要个算法去统一这个代码实现首先需要产生随机的算法,采用的是random 产生随机数public static int getrandom(int MIN, int MAX) { Random random = new Random(); return random.nextInt(MAX原创 2021-08-08 11:12:35 · 4704 阅读 · 0 评论 -
图论应用 floyd(弗洛伊德)算法、dijkstra(迪杰斯特拉)算法
图论应用是非常广泛的,不同于二叉树,二叉树是应用在数据存储结构提高查询效率的,而图论则是用在辅助决策系统中,求得最优化解的等等,而本篇文章中介绍的floyd(弗洛伊德)算法、dijkstra(迪杰斯特拉)算法 是分别用于解决多元路径和最短路径问题的。应用比较广泛。原创 2021-08-01 22:21:01 · 2389 阅读 · 0 评论 -
五大经典算法-动态规划 及其算法应用
整篇文章分析整个动态规划算法,什么是动态规划,及动态规划算法在字符串匹配中使用、分治法的差别点、动态规划优点;原创 2021-07-18 12:11:22 · 3816 阅读 · 0 评论 -
图论基本概念及存储结构、遍历方式
图论是数学中的概念,但应用在数据结构与算法学中相当重要的;应用在交通网络中,以及人工智能这些,任务分配的思想,都需要以图为基础,因此研究图论也是非常重要的,本篇文章主要介绍图论一些基本概念、基本性质、存储结构、以及遍历方式、为深层次研究图论打下一个基础。原创 2021-07-10 15:09:11 · 608 阅读 · 0 评论 -
栈的特点及其实例 递归 阶乘 斐波拉契数列等的应用详解
栈是一种受限的线性表结构,因此我们就应该知道他的表现形式也应该有顺序结构和链式结构,它有什么特点 及其应用,在这篇文章会重点介绍原创 2021-06-26 14:18:06 · 707 阅读 · 0 评论 -
线性表之顺序存储结构与链式存储结构 及 应用
前言我们常用的线性基本是顺序存储结构和链式存储结构表示,是最基本、最简单、也是最常用的一种数据结构;一个线性表是由n个相同特性的数据的有限序列;比如java中的数组 ,链表;所以研究这两种结构是非常必要的。原创 2021-06-22 22:18:13 · 3864 阅读 · 0 评论 -
五大经典算法-分治法 及其应用二分查找 、快速排序、递归排序
我们都知道在常用的五大常用的经典算法:分治算法、贪心算法、动态规划算法、回溯算法、分支界限算法、每个算法在计算机科学中都有很重要的地位;本篇文章会介绍这其中分治算法一种实现 ,包括顺序查找、二分查找、快速排序 、归并排序等方法原创 2021-06-19 13:42:45 · 3756 阅读 · 0 评论 -
Java 集合深入理解 (十七) :TreeMap源码研究如何达到快速排序和高效查找
前言TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序;应用在需要排序的场景;其次说到排序的数据结构,肯定会想到PriorityQueue,也是排序的数据结构,但底层实现是数组,并采用最小顶堆的算法实现的;而我们的treemap则采用散列表的方式进行存储数据,肯定不能采用最小顶堆算法进行实现,具体怎么实现;具体看源码进行分析。原创 2021-06-18 10:51:07 · 667 阅读 · 0 评论 -
哈希表与树的介绍
前言该篇文章,主要带我们认识什么哈希表和树,为我们在研究各个数据结构的实现及扩展算法,有个基本的认识。原创 2021-06-16 10:45:01 · 1041 阅读 · 0 评论 -
特化的AVL树之红黑树学习及原理解析
二叉平衡搜索树AVL 学习解析 及代码实现研究前言之前我分析过avl树,今天我在继续分析特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。在我们实际的用途中,用的很多;例如 TreeMap排序等等,以达到快速查找数据的效果性质和定义红黑树(RBT)的定义:它或者是一棵空树,或者是具有一下性质的平衡二叉查找树节点非红即黑。 根节点是黑色 所有null结点称为叶子节点,且认为颜色为黑色 所有红节点的子节点都为黑色 从任意原创 2021-06-11 15:13:10 · 569 阅读 · 0 评论 -
二叉排序树学习构建方式及如何遍历二叉排序树
在分析treemap时,分析到了红黑树,而红黑树是由二叉排序树变体产生的,因此学习二叉排序树是常用树的基础;本篇文章主要分析二叉排序树的构建 ,及原理解析,遍历方式。原创 2021-06-10 21:57:23 · 526 阅读 · 0 评论 -
二叉平衡搜索树AVL 学习解析 及代码实现研究
前言我们为了提高数据检索效率,从而引进树型结构;而常见的就是二叉树,一颗基本的二叉树他们都需要满足一个基本性质--即树中的任何节点的值大于它的左子节点,且小于它的右子节点。按照这个基本性质使得树的检索效率大大提高。如果一旦失去平衡则会出现检索效率大大降低的效果,为了维持二叉树的平衡,大牛们提出了各种实现的算法,如:AVL,SBT,伸展树,TREAP,红黑树等等;这篇文章将以java实现二叉平衡搜索树(avl)原理及实现二叉平衡搜索树(Self-Balancing Binary Search T.原创 2021-06-09 23:26:07 · 280 阅读 · 2 评论