php替换算法,PHP实现各种经典算法 || 我们的爱的博客
以下是代碼片段:
//--------------------
//?基本數(shù)據(jù)結(jié)構(gòu)算法
//--------------------
//二分查找(數(shù)組里查找某個(gè)元素)
function?bin_sch($array,??$low,?$high,?$k){
if?(?$low?<=?$high){
$mid?=??intval(($low+$high)/2?);
if?($array[$mid]?==??$k){
return?$mid;
}elseif?(?$k?
return??bin_sch($array,?$low,??$mid-1,?$k);
}else{
return??bin_sch($array,?$mid+?1,?$high,?$k);
}
}
return?-1;
}
//順序查找(數(shù)組里查找某個(gè)元素)
function??seq_sch($array,?$n,??$k){
$array[$n]?=??$k;
for($i=0;??$i
if(?$array[$i]==$k){
break;
}
}
if?($i
return??$i;
}else{
return?-1;
}
}
//線性表的刪除(數(shù)組中實(shí)現(xiàn))
function?delete_array_element($array?,?$i)
{
$len?=??count($array);
for?($j=?$i;?$j
$array[$j]?=?$array?[$j+1];
}
array_pop?($array);
return?$array?;
}
//冒泡排序(數(shù)組排序)
function?bubble_sort(?$array)
{
$count?=?count(?$array);
if?($count?<=?0?)?return?false;
for($i=0?;?$i
for($j=$count-1?;?$j>$i;?$j--){
if?($array[$j]?
$tmp?=?$array[$j];
$array[$j]?=?$array[?$j-1];
$array?[$j-1]?=?$tmp;
}
}
}
return?$array;
}
//快速排序(數(shù)組排序)
function?quick_sort($array?)?{
if?(count($array)?<=?1)?return??$array;
$key?=?$array?[0];
$left_arr??=?array();
$right_arr?=?array();
for?($i=?1;?$i
if?($array[?$i]?<=?$key)
$left_arr?[]?=?$array[$i];
else
$right_arr[]?=?$array[$i?];
}
$left_arr?=?quick_sort($left_arr?);
$right_arr?=?quick_sort(?$right_arr);
return?array_merge($left_arr?,?array($key),?$right_arr);
}
//------------------------
//?PHP內(nèi)置字符串函數(shù)實(shí)現(xiàn)
//------------------------
//字符串長(zhǎng)度
function?strlen?($str)
{
if?($str?==?''?)?return?0;
$count?=??0;
while?(1){
if?(?$str[$count]?!=?NULL){
$count++;
continue;
}else{
break;
}
}
return?$count;
}
//截取子串
function?substr($str,?$start,??$length=NULL)
{
if?($str==?''?||?$start>strlen($str?))?return;
if?(($length!=NULL)?&&?(?$start>0)?&&?($length>?strlen($str)-$start))?return;
if?((?$length!=NULL)?&&?($startstrlen($str?)+$start))?return;
if?($length?==??NULL)?$length?=?(strlen($str?)?-?$start);
if?($start?
for?($i=(strlen(?$str)+$start);?$i
$substr?.=??$str[$i];
}
}
if?($length??>?0){
for?($i=?$start;?$i
$substr??.=?$str[$i];
}
}
if?(?$length?
for?($i?=$start;?$i
$substr?.=?$str[$i?];
}
}
return?$substr;
}
//字符串翻轉(zhuǎn)
function?strrev($str)
{
if?($str?==?'')?return?0?;
for?($i=(strlen($str)-?1);?$i>=0;?$i?--){
$rev_str?.=?$str[$i?];
}
return?$rev_str;
}
//字符串比較
function?strcmp($s1,??$s2)
{
if?(strlen($s1)?
if?(strlen($s1)?>?strlen(?$s2))?return?1;
for?($i?=0;?$i
if?($s1[?$i]?==?$s2[$i]){
continue;
}else{
return?false;
}
}
return??0;
}
//查找字符串
function??strstr($str,?$substr)
{
$m?=?strlen($str);
$n?=?strlen($substr?);
if?($m?
for?($i=0;?$i?<=($m-$n+1);?$i?++){
$sub?=?substr(?$str,?$i,?$n);
if?(?strcmp($sub,?$substr)?==??0)??return?$i;
}
return?false?;
}
//字符串替換
function?str_replace($substr?,?$newsubstr,?$str)
{
$m?=?strlen($str);
$n?=?strlen($substr?);
$x?=?strlen($newsubstr?);
if?(strchr($str,?$substr?)?==?false)?return?false;
for?(?$i=0;?$i<=($m-?$n+1);?$i++){
$i?=?strchr($str,??$substr);
$str?=?str_delete?($str,?$i,?$n);
$str?=?str_insert($str,??$i,?$newstr);
}
return?$str?;
}
//--------------------
//?自實(shí)現(xiàn)字符串處理函數(shù)
//--------------------
//插入一段字符串
function?str_insert($str,?$i?,?$substr)
{
for($j=0?;?$j
$startstr?.=?$str[$j?];
}
for?($j=$i;?$j?
$laststr?.=?$str[$j?];
}
$str?=?($startstr?.?$substr??.?$laststr);
return?$str?;
}
//刪除一段字符串
function?str_delete($str?,?$i,?$j)
{
for?(?$c=0;?$c
$startstr?.=?$str?[$c];
}
for?($c=(?$i+$j);?$c
$laststr??.=?$str[$c];
}
$str?=?($startstr?.?$laststr?);
return?$str;
}
//復(fù)制字符串
function?strcpy($s1,?$s2?)
{
if?(strlen($s1)==NULL?||?!isset(?$s2))?return;
for?($i=0?;?$i
$s2[]?=?$s1?[$i];
}
return?$s2;
}
//連接字符串
function?strcat($s1?,?$s2)
{
if?(!isset($s1)?||?!isset(?$s2))?return;
$newstr?=?$s1?;
for($i=0;?$i?
$newstr?.=?$st[$i?];
}
return?$newsstr;
}
//簡(jiǎn)單編碼函數(shù)(與php_decode函數(shù)對(duì)應(yīng))
function?php_encode($str)
{
if?(?$str==''?&&?strlen(?$str)>128)?return?false;
for(?$i=0;?$i
$c?=?ord($str[$i?]);
if?($c>31?&&?$c?<107)?$c?+=?20?;
if?($c>106?&&?$c?<127)?$c?-=?75?;
$word?=?chr($c?);
$s?.=?$word;
}
return?$s;
}
//簡(jiǎn)單解碼函數(shù)(與php_encode函數(shù)對(duì)應(yīng))
function?php_decode($str)
{
if?(?$str==''?&&?strlen($str?)>128)?return?false;
for(?$i=0;?$i
$c??=?ord($word);
if?(?$c>106?&&?$c<127?)?$c?=?$c-20;
if?($c>31?&&?$c
$word?=?chr(?$c);
$s?.=?$word?;
}
return?$s;
}
//簡(jiǎn)單加密函數(shù)(與php_decrypt函數(shù)對(duì)應(yīng))
function?php_encrypt($str)
{
$encrypt_key?=?'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key?=?'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if?(?strlen($str)?==?0)?return??false;
for?($i=0;??$i
for?($j=0;?$j?
if?($str[$i]?==?$encrypt_key?[$j]){
$enstr?.=??$decrypt_key[$j];
break;
}
}
}
return?$enstr;
}
//簡(jiǎn)單解密函數(shù)(與php_encrypt函數(shù)對(duì)應(yīng))
function?php_decrypt($str)
{
$encrypt_key?=?'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key?=?'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if?(?strlen($str)?==?0)?return??false;
for?($i=0;??$i
for?($j=0;?$j?
if?($str[$i]?==?$decrypt_key?[$j]){
$enstr?.=??$encrypt_key[$j];
break;
}
}
}
return?$enstr;
}
?>
總結(jié)
以上是生活随笔為你收集整理的php替换算法,PHP实现各种经典算法 || 我们的爱的博客的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 公众号菜单_Python脚
- 下一篇: acm用java怎么写_用java来写A