视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php用学算法吗
2020-11-27 14:19:50 责编:小采
文档

php用学算法吗?

php需要学习基本的排序算法,因为算法是程序的核心,一个程序的好坏,关键就是这个程序算法的优劣,当然掌握基础算法主要也是为了锻炼逻辑思维。

php的几种算法如下

<? 
//-------------------- 
// 基本数据结构算法 
//-------------------- 
//二分查找(数组里查找某个元素) 
function bin_sch($array, $low, $high, $k){ 
 if ( $low <= $high){ 
 $mid = intval(($low+$high)/2 ); 
 if ($array[$mid] == $k){ 
 return $mid; 
 }elseif ( $k < $array[$mid]){ 
 return bin_sch($array, $low, $mid-1, $k); 
 }else{ 
 return bin_sch($array, $mid+ 1, $high, $k); 
 } 
 } 
 return -1; 
} 
//顺序查找(数组里查找某个元素) 
function seq_sch($array, $n, $k){ 
 $array[$n] = $k; 
 for($i=0; $i<$n; $i++){ 
 if( $array[$i]==$k){ 
 break; 
 } 
 } 
 if ($i<$n){ 
 return $i; 
 }else{ 
 return -1; 
 } 
} 
//线性表的删除(数组中实现) 
function delete_array_element($array , $i) 
{ 
 $len = count($array); 
 for ($j= $i; $j<$len; $j ++){ 
 $array[$j] = $array [$j+1]; 
 } 
 array_pop ($array); 
 return $array ; 
} 
//冒泡排序(数组排序) 
function bubble_sort( $array) 
{ 
 $count = count( $array); 
 if ($count <= 0 ) return false; 
 for($i=0 ; $i<$count; $i ++){ 
 for($j=$count-1 ; $j>$i; $j--){ 
 if ($array[$j] < $array [$j-1]){ 
 $tmp = $array[$j]; 
 $array[$j] = $array[ $j-1]; 
 $array [$j-1] = $tmp; 
 } 
 } 
 } 
 return $array; 
} 
//快速排序(数组排序) 
function quick_sort($array ) { 
 if (count($array) <= 1) return $array; 
 $key = $array [0]; 
 $left_arr = array(); 
 $right_arr = array(); 
 for ($i= 1; $i<count($array ); $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内置字符串函数实现 
//------------------------ 
//字符串长度 
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) && ($start< 0) && ($length>strlen($str )+$start)) return; 
 if ($length == NULL) $length = (strlen($str ) - $start); 
 
 if ($start < 0){ 
 for ($i=(strlen( $str)+$start); $i<(strlen ($str)+$start+$length ); $i++) { 
 $substr .= $str[$i]; 
 } 
 } 
 if ($length > 0){ 
 for ($i= $start; $i<($start+$length ); $i++) { 
 $substr .= $str[$i]; 
 } 
 } 
 if ( $length < 0){ 
 for ($i =$start; $i<(strlen( $str)+$length); $i++) { 
 $substr .= $str[$i ]; 
 } 
 } 
 return $substr; 
} 
//字符串翻转 
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) < strlen($s2)) return -1 ; 
 if (strlen($s1) > strlen( $s2)) return 1; 
 for ($i =0; $i<strlen($s1 ); $i++){ 
 if ($s1[ $i] == $s2[$i]){ 
 continue; 
 }else{ 
 return false; 
 } 
 } 
 return 0; 
} 
//查找字符串 
function strstr($str, $substr) 
{ 
 $m = strlen($str); 
 $n = strlen($substr ); 
 if ($m < $n) return false ; 
 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 ; 
} 
//-------------------- 
// 自实现字符串处理函数 
//-------------------- 
//插入一段字符串 
function str_insert($str, $i , $substr) 
{ 
 for($j=0 ; $j<$i; $j ++){ 
 $startstr .= $str[$j ]; 
 } 
 for ($j=$i; $j <strlen($str); $j ++){ 
 $laststr .= $str[$j ]; 
 } 
 $str = ($startstr . $substr . $laststr); 
 return $str ; 
} 
//删除一段字符串 
function str_delete($str , $i, $j) 
{ 
 for ( $c=0; $c<$i; $c++){ 
 $startstr .= $str [$c]; 
 } 
 for ($c=( $i+$j); $c<strlen ($str); $c++){ 
 $laststr .= $str[$c]; 
 } 
 $str = ($startstr . $laststr ); 
 return $str; 
} 
//复制字符串 
function strcpy($s1, $s2 ) 
{ 
 if (strlen($s1)==NULL || !isset( $s2)) return; 
 for ($i=0 ; $i<strlen($s1); $i++){ 
 $s2[] = $s1 [$i]; 
 } 
 return $s2; 
} 
//连接字符串 
function strcat($s1 , $s2) 
{ 
 if (!isset($s1) || !isset( $s2)) return; 
 $newstr = $s1 ; 
 for($i=0; $i <count($s); $i ++){ 
 $newstr .= $st[$i ]; 
 } 
 return $newsstr; 
} 
//简单编码函数(与php_decode函数对应) 
function php_encode($str) 
{ 
 if ( $str=='' && strlen( $str)>128) return false; 
 for( $i=0; $i<strlen ($str); $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; 
} 
//简单解码函数(与php_encode函数对应) 
function php_decode($str) 
{ 
 if ( $str=='' && strlen($str )>128) return false; 
 for( $i=0; $i<strlen ($str); $i++){ 
 $c = ord($word); 
 if ( $c>106 && $c<127 ) $c = $c-20; 
 if ($c>31 && $c< 107) $c = $c+75 ; 
 $word = chr( $c); 
 $s .= $word ; 
 } 
 return $s; 
} 
//简单加密函数(与php_decrypt函数对应) 
function php_encrypt($str) 
{ 
 $encrypt_key = 'abcdefghijklmnopqrstuvwxyz12345670'; 
 $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'; 
 if ( strlen($str) == 0) return false; 
 for ($i=0; $i<strlen($str); $i ++){ 
 for ($j=0; $j <strlen($encrypt_key); $j ++){ 
 if ($str[$i] == $encrypt_key [$j]){ 
 $enstr .= $decrypt_key[$j]; 
 break; 
 } 
 } 
 } 
 return $enstr; 
} 
//简单解密函数(与php_encrypt函数对应) 
function php_decrypt($str) 
{ 
 $encrypt_key = 'abcdefghijklmnopqrstuvwxyz12345670'; 
 $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'; 
 if ( strlen($str) == 0) return false; 
 for ($i=0; $i<strlen($str); $i ++){ 
 for ($j=0; $j <strlen($decrypt_key); $j ++){ 
 if ($str[$i] == $decrypt_key [$j]){ 
 $enstr .= $encrypt_key[$j]; 
 break; 
 } 
 } 
 } 
 return $enstr; 
} 
?>

更多PHP相关知识,请访问PHP中文网!

下载本文
显示全文
专题