
数据结构与算法
abcPHP
这个作者很懒,什么都没留下…
展开
-
内存堆和栈的区别
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说转载 2016-08-30 15:35:16 · 279 阅读 · 0 评论 -
DES加密秘钥
1 秘钥长度Each algorithm is designed to accept a certain key length. The key is used as part of the algorithm, and as such, can’t be whatever your heart desires.Common key sizes are:DES: 56bit key ...转载 2018-06-09 16:32:26 · 12572 阅读 · 0 评论 -
PHP实现KMP算法
function cal_next($str){ $next[0] = -1;//next[0]初始化为-1 $i=0; $j = -1; $len=strlen($str); while($i<$len){ if($j===-1 || $str[$i]===$str[$j]){ $i++; ...原创 2018-04-10 10:45:24 · 584 阅读 · 0 评论 -
二叉树相关定义
二叉树的相关类型术语并不是严格统一和规范的,不同的文献描述略有不同[术语]1.根二叉树(Rooted Binary Tree):有一个根结点,每个结点至多有两个孩子。2.满二叉树(Full Binary Tree):要么是叶子结点(结点的度为0),要么结点同时具有左右子树(结点的度为2)。3.完全二叉树(Complete Binary Tree):每层结点都完全填满,在转载 2016-08-24 12:21:37 · 512 阅读 · 0 评论 -
算法复杂度
原文链接算法复杂度包括时间复杂度和空间复杂度。 时间复杂度就是执行算法所需要的时间(执行多少次赋值、比较、判断等操作),空间复杂度就是执行该算法需要消耗多少存储空间。 2者都是越低越好,但往往不能兼顾,需要找到时间和空间复杂度的平衡点。算法复杂度,即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的转载 2016-08-30 17:48:38 · 467 阅读 · 0 评论 -
常见算法时间复杂度
常见算法时间复杂度: O(1): 表示算法的运行时间为常量 O(n): 表示该算法是线性算法 O(㏒2n): 二分查找算法 O(n2): 对数组进行排序的各种简单算法,例如直接插入排序的算法。 O(n3): 做两个n阶矩阵的乘法运算 O(2n): 求具有n个元素集合的所有子集的算法 O(n!): 求具有N个元素的全排列的算法优<----------------------<劣O(1)转载 2016-08-30 17:41:57 · 4207 阅读 · 0 评论 -
算法时间复杂度的计算
时间复杂度的定义一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度(O是数量级的符号 ),简称时间复杂度。基本的计算步骤根据定义,可以归纳出基本的计算步骤 1转载 2016-08-30 17:18:20 · 1224 阅读 · 0 评论 -
公钥和私钥、数字证书
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中转载 2016-08-30 16:01:55 · 279 阅读 · 0 评论 -
常见加密算法分类与介绍
原文链接,个人学习留存。常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶转载 2016-08-30 15:46:57 · 1913 阅读 · 1 评论 -
PHP用openssl_encrypt代替mcrypt_encrypt
每个人都应该已经停止使用PHP Mcrypt扩展程序进行新的工作,并且应该计划将其现有的应用程序关闭,因为libmcrypt在2003年被放弃,并且不被保护。 我认为最好的选择是OpenSSL。近年来热度很高,但我认为对称块加密是一个很好的选择。 (我可能会解释为什么我这么想呢) PHP中的 openssl_encrypt()和openssl_decrypt()的文档有点缺乏。本文旨在填补一些...转载 2018-07-03 19:20:45 · 4196 阅读 · 0 评论