Hash Table是PHP的核心,这话一点都不过分。PHP的数组,关联数组,对象属性,函数表,符号表,等等都是用HashTable来做为容器的。PHP的HashTable采用的拉链法来解决冲突, 这个自不用多说, 我今天主要关注的就是PHP的Hash算法, 和这个算法本身透露出来的一些思想。PHP的Hash采用的是目前最为普遍的DJBX33A (Daniel J. Bernstein, Times 33 with Addition), 这个算法被广泛运用与多个软件项目,Apache, Perl和Berkeley DB等. 对于字符串而言...
* *** ***** ******* ********************上图php代码如下<?php
for($i=1;$i<=6;$i++){for($z=5;$z>=$i;$z--){echo " ";}for($j=1;$j<=2*$i-1;$j++){echo "*";}echo "<br/>";
}原文:http://blog.csdn.net/xingjigongsi/article/details/37844661
C#与PHP 共用可逆加密算法密钥使用MD5加密、 PHP 代码 C# 代码原文:https://www.cnblogs.com/wsxkit/p/10907502.html
<?php $array = array(11,-3,51,-7,9,100,2,-56,32,21); $flag = false; for ($i = 1;$i < count($array);$i++){ for ($j = 0;$j < count($array) - $i;$j++){ if ($array[$j] > $array[$j + 1]){ $temp = $array[$j]; $array[$j] = $array[$j + 1]; $array[$j + 1] = $temp; $flag = true; } } if (!$flag){ break; } $flag = false; } forea...
目前的工作是需要对用户的一些数据进行分析,每个用户都有若干条记录,每条记录中有用户的一个位置,是用经度和纬度表示的。
还有一个给定的数据库,存储的是一些已知地点以及他们的经纬度,内有43W多条的数据。
现在需要拿用户的经纬度和已知地点进行距离匹配,如果它们之间的距离小于一定的数据,比如说500米,就认为用户是在这个地点。
MYSQL本身是支持空间索引的,但是在5.x的版本中,取消了对Distance()和Related()的支持,参...
<?php//$exp=‘300+20*6-20‘; $exp=‘71*2-50*3-3-67*6+80‘; //14-15-3=-4//定义一个数栈和一个符号栈$numsStack=new MyStack();$operStack=new MyStack();$keepNum=‘‘;//专门用于拼接多位数的字符串$index=0;//$index就是一个扫描的标记while(true){//依次取出字符$ch=substr($exp,$index,1);//判断$ch是不是一个运算符号.if($operStack->isOper($ch)==true){//是运算符/**3.如果发现是运算符3.1 如果符号栈为空,就直接入符号...
短网址(Short URL),顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。 例如:http://t.cn/SzjPjA短网址服务,可能很多朋友都已经不再陌生,现在大部分微博、手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场。估计很多朋友现在也正在使用。 看过新...
近期广受笔试摧残,对于各种排序也是晕头转向。
更坑爹的是貌似大多都是用C++、Java实现相关算法,让我搞PHP的情何以堪,更何况,PHP本身就有排序函数sort(),其实来说,是很简单的,这也可能是为什么不用PHP进行排序吧。
但考虑到PHP毕竟也是一门面向对象的语言吧,我们利用原生的语法,也是可以实现经典排序算法的,先不说性能如何,切不要妄自菲薄吧。
下面为具体的经典排序算法的PHP实现类。<?php/*** Author: helen* Creat...
冒泡排序属于交换排序,是一种稳定排序原理:冒泡算法是将较小的元素搬移到数组的开始,将较大的元素慢慢地往数组的尾部移动,小的数据就像气泡一下往上冒,而大的数据就像石头一样往下沉。总结两个方法,分别是「递归」、「双层for循环」实现: 「双层for循环」: for()方法内传入一个数组,对数组进行循环 n-1 次,并判断,两两比较,前值是否大于后值,如果是则交换。依次再次进行循环数组 n-1 次,最后返回有序的数组。$ar...
<?php
//短网址生成算法
class ShortUrl {//字符表public static $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";public static function encode($url){$key = 'abc'; //加盐$urlhash = md5($key . $url);$len = strlen($urlhash);//将加密后的串分成4段,每段4字节,对每段进行计算,一共可以生成四组短连接for ($i = 0; $i < 4; $i++) {$urlhash_piece = substr($urlhash, $i * $len / 4, $len /...
一、冒泡排序排序原理:对一组数据,比较相邻数据的大小,把小的数据放在前面,值大的放在后面(升序排序)举例说明: $arr = [6, 3, 8, 2, 9, 1];第一轮排序: 第一次比较 6和3比较: 3 6 8 2 9 1 第二次比较 6和8比较: 3 6 8 2 9 1 第三次比较 8和2比较: 3 6 2 8 9 1 第四次比较 8和9比较: 3 6 2 8 9 1 第五次比较 9和1比较: 3 6 2 8 1 9 第一轮...
本文实例讲述了php中最简单的字符串匹配算法。分享给大家供大家参考。具体实现方法如下:复制代码 代码如下:<?php
/*
最简单字符串匹配算法php实现方式
T: ababcabc
P: abc
0. 1. 2.
ababcabc ababcabc ababcabc
||| ||| |||
abc abc abc
(X) (X) (O)
3. 4. 5.
ababcabc ababcabc ababcabc
||| ...
php对称加密算法KEY 是之前定义的常量复制代码 代码如下:Mcrypt::encrypt();Mcrypt::decrypt();复制代码 代码如下:defined(‘ROOT‘) or exit(‘Access Denied‘);
class Mcrypt{ public static function encrypt($code){ return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(KEY), $code, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))); } public st...
1、冒泡排序function bubble_sort($arr){$n = count($arr);for($i=0;$i<$n-1;$i++){for($j=$i+1;;$j<$n-$i;$j++){if($arr[$j]<$arr[$i]){$temp = $arr[$i];$arr[$i] = $arr[$j];$arr[$j] = $temp;}}}
} 原文:http://www.cnblogs.com/sunscheung/p/4717952.html
替换空格:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:
1.先循环一遍,找出该字符串中" "空格的个数count
2.因为要把" "空格替换成 "%20",所以,要倒着数,最后一个空格后面的元素要移动到2*count位置
3.继续往前遍历,倒数第二个空格后面直到最后空格之间的元素,往后移动(count-1)*2位置replaceSpace(str)count=0for i=0;i<count...