![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 91
初学爱好者
努力!
展开
-
查找算法
二分查找[折半查找]算法1、思路分析首先确定该数组的中间的下标mid = (left + right) / 2然后让需要查找的数 findVal 和 arr[mid] 比较1 findVal > arr[mid] 说明要查找的数在mid的右边,因此需要递归的向右查找2 findVal < arr[mid] 说明要查找的数在mid的左边,因此需要递归的向左查找3 findVal == arr[mid] 说明找到,返回下标值// 什么时候需要结束递归?找到原创 2020-10-21 14:43:17 · 165 阅读 · 0 评论 -
排序算法
一、冒泡排序1.1 基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。优化:因为排序的过程中, 各元素不断接近自己的位置, 如果一趟比较下来没有进行过交换, 就说明序列有序, 因此要在排序过程中设置一个标志 flag 判断元素是否进行过交换。 从而减少不必要的比较。 (这里说的优化, 可以在冒泡排序写好后, 再进行)1.2 思路.原创 2020-10-21 14:41:16 · 282 阅读 · 0 评论 -
RSA代码演示
RSA实例代码通过上一篇的RSA算法原理了解之后,这里用一段简易的Java代码进行演示。首先我们创建一个类,然后在main方法中通过BigInteger.probablePrime(int bitLength, Random rnd)方法生成两个素数System.out.println(BigInteger.probablePrime(10, new Random()));System.out.println(BigInteger.probablePrime(10, new Random()))原创 2020-09-28 10:28:10 · 800 阅读 · 2 评论 -
RSA算法简介
RSA算法简介RSA算法是一种非对称性加密算法,现在算是最具有影响力的算法,简单来说RSA算法运用了"一个大整数进行因式分解具备一定的难度"这个数学知识来进行加密,对一个极大整数做因式分解越难,那么想要破解加密过后的密码就越难。在了解RSA算法之前,先要了解以下几个知识点:一、互质关系__如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。__比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成互质关系。关于互质关系,不难得到以下结论:转载 2020-09-28 10:24:32 · 2629 阅读 · 1 评论