易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP部分常见算法


//1. 用户密码六位数,不能大于六位而不能小于六数,数字值正则为[0-9],请用PHP写出有几种可能性,并做暴力破解;
function dePassword($pwd) {
$tmp = array('000000', '555555', '999999');
for ($i = 0; $i < 3; $i++) {
if ($pwd == $tmp[$i]) return $tmp[$i];
}
return $pwd < $tmp[1] ? getPwd(0, $pwd, $tmp) : getPwd(1, $pwd, $tmp);
}
function getPwd($i, $pwd, $tmp) {
$half = ceil(($tmp[$i] + $tmp[$i + 1]) / 2);
if ($half == $pwd) {
return $half;
} elseif ($half > $pwd) {
return returnI($pwd, $tmp[$i], $half);
} else {
return returnI($pwd, $half, $tmp[$i + 1]);
}
}
function returnI($pwd, $start, $end){
for ($i = $start + 1; $i < $end; $i++) {
if ($i == $pwd) return $i;
}
}
$pwd = '000089';
printf('%06s', dePassword($pwd));
//2.牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛
function niunum($n) {
static $num = 1;
for ($i = 1; $i <= $n; $i++) {
if ($i >= 4 && $i < 15) {
$num++;
niunum($n - $i);
}
if ($i == 20) $num--;
}
return $num;
}
echo niunum(10);
//3.合并多个数组,不用array_merge(),思路:遍历每个数组,重新组成一个新数组。
function unionArray($a, $b) {
$re = array();
foreach ($a as $v) $re[] = $v;
foreach ($b as $v) $re[] = $v;
return $re;
}
print_r(unionArray(array(1,2,4,5,'s'), array(2,5,7,'c','d')));
/*4.二分法查找
*思路:以数组中某个值为界,再递归进行查找,直到结束。
*/
$a = array(1,4,2,5,6,7,0,8,3);
function find($arr, $start, $end, $key) {
sort($arr);
$mid = ceil(($start + $end) / 2);
if ($arr[$mid] == $key) {
return $mid;
} elseif ($arr[$mid] > $key) {
return find($arr, $start, $mid - 1, $key);
} else {
return find($arr, $mid + 1, $end, $key);
}
}
echo find($a, 0, count($a), 2);
//5.冒泡排序法
function mSort($a) {
$len = count($a);
for ($i = 0; $i < $len - 1; $i++) {
for ($j = $i; $j < $len; $j++) {
if ($a[$i] > $a[$j]) {
$tmp = $a[$i];
$a[$i


相关文档:

关于php性能调优的几条建议

最近在处理小鱼社区的开发过程,遇到程序的性能问题,在解决这个问题的时候提出几个建议:
1、处理while/foreach之类的循环要特别注意,因为这个循环可能是好几千次的,所以里面的每句语句都要注意执行速度,要精简。还有个不好的习惯一定要注意,不要在这个中写太长的程序,因为这可能让你在几百行的代码中迷失,慢慢地迷 ......

搭建Eclipse PHP开发环境

    搭建PHP开发环境:
    1、准备并安装下列软件:
    MySQL 5.1.30: http://dev.mysql.com/downloads/。
    Apache 2.2.14: http://httpd.apache.org/. 在安装过程中,会出现3个文本框,上面两个输入你的本机IP(如:127.0.0.1),最下面输入你的EMAIL ......

为你剖解PHP序列化格式

对于那些刚刚接触PHP语言的朋友来说,什么是PHP序列化格式可能大家都还是不太清楚。我们今天就为大家详细讲解这一方面的知识。
PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize、unserialize。不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对序列化结果的格式却没做任何说明。 ......

Linux环境的AMP安装 PHP安装


3、PHP安装
1)还是下载源码包,如:php-5.1.1.tar.gz,下载地址:http://www.php.net
2)解压缩,>tar -zxvf php-5.1.1.tar.gz
3)进入php-5.1.1,>cd php-5.1.1
4)安装配置,>./configure --prefix=/opt/php
--with-apxs2=/opt/apache/bin/apxs --with-mysql=/opt/mysql
--with-mysqli=/opt/mysql/bin/ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号