
算法
巷雨微若
还在慢慢学习中
展开
-
环形链表
环形链表是一种链式存储结构,类似于单链表。区别是环形链表的尾节点指向头节点。 从而形成一个环, 环形链表是一种非常灵活的存储结构,可解决许多实际问题,魔术师发牌问题和约瑟夫问题 都能利用环形链表来解决,下面是一个完整的环形链表实例,使用php来实现的(参照韩顺平老师的php算法教程) /** * 环形链表的实现 * */ class child {原创 2017-06-04 19:56:43 · 582 阅读 · 0 评论 -
使用php解决约瑟夫问题
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,报道第M个时序号为M的人出列, 然后序号为M+1的人开始从头报数依此类推 报到M的人出列,问最后剩下的那个人的序号是几 利用环形链表来解决这个问题,下面是php实现的实例 /** * 环形链表的实现 * */ class child { public $no;//序号 publ原创 2017-06-04 20:10:08 · 270 阅读 · 0 评论 -
php实现链式队列
php实现链式队列转载 2017-06-25 22:47:00 · 372 阅读 · 0 评论 -
php常用的排序算法
php实现的许多的经典排序算法,这些算法可以经过一些改动用到更多的实际问题中,因为这些经典的算法有非常好的思想和逻辑在里面,这些都是及其值得学习和借鉴的。 当我们学习到了许多好的编程思想和逻辑,就能写出一些高性能的代码,一些复杂逻辑的功能就可以通过很巧妙和简洁的方法来实现。/** * 使用递归实现字符串翻转 * @param $str 需要翻转的字符串 * return string *原创 2017-06-26 15:42:40 · 227 阅读 · 0 评论 -
php利用堆栈 实现高级计算器
当我们得到一个字符串运算式该如何去得出它的运算结果呢? 这时候我们就能使用堆栈的算法很巧妙的解决这个问题。 思路是这样的:(我们利用php函数substr循环去截取这个字符串运算式,依次取出这个字符串的值【我们得从第一个字符开始截取】,我们将开始截取位置设为一个循环增长的变量,初始化为【$index=0】),同时还需要创建两个栈,一个专门存放数字【$numStack】,一个存放运算符【$ope原创 2017-06-08 21:47:58 · 1169 阅读 · 0 评论 -
使用php解决魔术师发牌问题
魔术师发牌问题的简介:一位魔术师掏出一叠扑克牌,魔术师取出其中13张黑桃,洗好后,把牌面朝下。说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念一,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌,第二次数1,2,将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面二张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样原创 2017-06-04 20:13:11 · 388 阅读 · 0 评论 -
单链表
单链表是一种链式存储结构,基本特征:必须有一个头节点,头节点不储存数据 只存储一个用于指向下个节点地址的变量,每个节点都存有一个指向下个节点的指针(一个指向下个节点的地址),通过这个指针从而使链表中的各个节点串联起来形成一个完整的链表。下面是一个用php完成的链表 有增 删 改 查 参照的是韩顺平老师的php算法视频教程(有需要的可留言) /** * 单链表实例 */ hea转载 2017-06-01 20:10:28 · 314 阅读 · 0 评论 -
PHP中密码的安全
原文:http://blog.youkuaiyun.com/koastal/article/details/53039130php手册中有专门的一个部分来介绍这个问题 http://php.net/manual/zh/faq.passwords.php很多应用,都是将用户的密码都是直接通过md5加密直接存储到数据库中的,包括我最近在用的开源项目zabbix的web管理界面。$password = "1234"...转载 2018-03-12 11:04:08 · 666 阅读 · 0 评论