抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

公钥加密系统在一个公钥加密系统中,任何人参与者都拥有独自的公钥和密钥,通常用P表示公钥,用S表示密钥,公钥用于加密,密钥用于解密。并且公钥可以公开,任何人都可以使用这个公钥发送一段密文,而只有私钥的持有者才可以用私钥解密 公钥和私钥对应的函数互为反函数 RSA公钥加密体系基于一个数论事实:把两个大质数相乘很容易,但是分解大数为两个质数的乘积很难 RSA加密在RSA公钥加密系统中,可以通过以...

二叉搜索树的概念二叉搜索树是一种特殊的二叉树,对于其中的任意结点 x,其左子树中的任何结点的值都小于结点 x 的值,其右子树中的任何结点的值都大于结点 x 的值 二叉搜索树的结点12345struct Node{ int value; Node* lChild; Node* rChild;}; 因此只需要对二叉搜索树进行中序遍历,就可以升序输出所有元素 查询为了查找二叉...

散列表散列表是一种动态的集合,它支持插入,检索,删除等字典操作。散列表是数组的扩展,一般的数组可以在 O(1) 的时间复杂度内进行随机读取,而散列表则使用一个特殊的函数来为各个元素分组在查找元素,只需要用特殊函数计算一次,就可以知道元素存放的位置 散列表的基本结构是一个关键字数组和链表,任意元素通过哈希函数计算出一个关键字,通过关键字可以直接定位到一个具体链表,然后往链表末尾添加该元素 12...

非线性结构的概念线性结构是指逻辑上各个结点一一对应的关系,例如链表,即使它在储存上可能并不是顺序储存 非线性结构是指逻辑上存在一对多关系的结点的结构,例如树,图等。它们的任何结点都可能对应着其它多个不同的结点 有根树二叉树 二叉树在逻辑上是一种树状结构,最顶上的结点被称为根结点,每个结点都有 key, lChild和rChild值,分别记录该结点的值,左子树指针和右子树指针,当key为空(N...

串和字符串串是由零个或多个单独的元素组成的有限长序列。 在计算机中,串的最广泛的用处是字符串,因此一般情况下,串和字符串是等价的,字符串也简称为串,串就是字符串 串的结构串实际上是一个特殊的数组,它的元素一定是字符类型的,因此他也具有数组所拥有的特性 读取字符串中的一个字符的时间复杂度是O(1),因为可以直接使用地址准确定位,修改字符串当中的一个字符也非常快,但是字符串无法动态地延长或减短,...

数组内存结构数组是一种顺序存储的结构,他所占用的空间是固定的,不能随意增加或减小,其中所有元素以特定的方式按顺序排列下来,各个元素的位置都是固定的。因此数组是一种有序的线性结构 数组的随机访问性能优秀,因为只需要对首地址进行加减运算就能得到任意位置处的值 123456789101112int a[100];for(int i=0;i<100;i++){ a[i] = i + 1;...

顺序统计量将长度为 n 的数组升序排序后,则第 i 个位置的数字是该数组的第 i 小的量,称之为第 i 顺序统计量 数组最小值是第1个顺序统计量,最大值是第n个顺序统计量,中位数(又称下中位数)是第⌊(n+1)/2⌋个顺序统计量 ⌊n⌋ 表示对 n 向下取整,⌈n⌉表示对 n 向上取整 最大值和最小值若想要寻找n个数字里的最大值或最小值,只需要进行(n-1)次比较 查找最小值12345i...

渐近等价考虑函数: f(x)=x²+4x 当x→∞时,该函数可以看作x平方与它的高阶无穷小o(x²)之和,即 于是我们称f(x)和x²是渐近等价的,设g(x)=x²,那么我们可以用下面的符号表示渐进等价 更一般地,如果存在两个函数f(x)和g(x),使得下面式子成立 就称f(x)和g(x)渐进等价 你也可以用极限的方法来判断两个函数是否渐近等价 我们可以轻而易举地得到一个结论:f(x...

比较排序顾名思义,比较排序就是通过比较数组里的每个数来排序的算法的统称,经典的比较排序有:冒泡排序,插入排序,快速排序等。它们都是通过逐一比较各个元素,从而得知每个元素应该待的位置。 渐进时间复杂度为了寻找最佳比较排序算法,我们需要得知比较排序的渐进时间复杂度。但是实际上排序算法通常会受到数组的实际值的影响,因此这里我们先考虑最坏情况。 在一个长度为 n 的数组 A 里,欲得知 A[0] 应...

未婚夫问题假如现在有n个求婚者,被分别标记为1,2,3…N,她们将按顺序被你面试,你每次都必须选择接受或不接受,一旦你接受了其中一个,那么就无法面试后面的人。因此你必须在无法面试后面的人的情况下选出当下最优者。 由于无法预知这些求婚者的平均情况,所以我们必须先面试前k个人,从第k+1个人开始,一旦发现更优者就立即选择她。 关键变量这个问题中有三个主要的关键变量 最优点x顾名思义,最优点就是最...