php专区

 首页 > php专区 > PHP应用 > php函数大全 > 基本数据结构算法 - php函数

基本数据结构算法 - php函数

分享到:
【字体:
导读:
          ? -------------------- 基本数据结构算法 -------------------- 二分查找(数组里查找某个元素)functionbin_sch($array,$low,$high,...

基本数据结构算法

  1. //--------------------  
  2. // 基本数据结构算法 
  3. //--------------------  
  4.  
  5. //二分查找(数组里查找某个元素)  
  6. function bin_sch($array$low$high$k){   
  7.     if ($low <= $high){   
  8.         $mid = intval(($low+$high)/2);   
  9.         if ($array[$mid] == $k){   
  10.             return $mid;   
  11.         }elseif ($k < $array[$mid]){   
  12.             return bin_sch($array$low$mid-1, $k);   
  13.         }else{   
  14.             return bin_sch($array$mid+1, $high$k);   
  15.         }   
  16.     }   
  17.     return -1;   
  18. }   
  19.  
  20. //顺序查找(数组里查找某个元素)  
  21. function seq_sch($array$n$k){   
  22.     $array[$n] = $k;   
  23.     for($i=0; $i<$n$i++){   
  24.         if($array[$i]==$k){   
  25.             break;   
  26.         }   
  27.     }   
  28.     if ($i<$n){   
  29.         return $i;   
  30.     }else{   
  31.         return -1;   
  32.     }   
  33. }   
  34.  
  35. //线性表的删除(数组中实现)  
  36. function delete_array_element($array$i)  
  37. {  
  38.         $len = count($array);   
  39.         for ($j=$i$j<$len$j++){  
  40.                 $array[$j] = $array[$j+1];  
  41.         }  
  42.         array_pop($array);  
  43.         return $array;  
  44. }  
  45.  
  46. //冒泡排序(数组排序)  
  47. function bubble_sort($array)  
  48. {  
  49.         $count = count($array);  
  50.         if ($count <= 0) return false;  
  51.  
  52.         for($i=0; $i<$count$i++){  
  53.                 for($j=$count-1; $j>$i$j--){  
  54.                         if ($array[$j] < $array[$j-1]){  
  55.                                 $tmp = $array[$j];  
  56.                                 $array[$j] = $array[$j-1];  
  57.                                 $array[$j-1] = $tmp;  
  58.                         }  
  59.                 }  
  60.         }  
  61.         return $array;  
  62. }  
  63.  
  64. //快速排序(数组排序)  
  65. function quick_sort($array) {  
  66.         if (count($array) <= 1) return $array;  
  67.  
  68.         $key = $array[0];  
  69.         $left_arr = array();  
  70.         $right_arr = array();  
  71.  
  72.         for ($i=1; $i<count($array); $i++){  
  73.                 if ($array[$i] <= $key)  
  74.                         $left_arr[] = $array[$i];  
  75.                 else  
  76.                         $right_arr[] = $array[$i];  
  77.         }  
  78.  
  79.         $left_arr = quick_sort($left_arr);  
  80.         $right_arr = quick_sort($right_arr);  
  81.  
  82.         return array_merge($left_arrarray($key), $right_arr);  
  83. }  
  84.  
  85.  
  86.  
  87. //------------------------  
  88. // PHP内置字符串函数实现  
  89. //------------------------  
  90.  
  91. //字符串长度  
  92. function strlen($str)  
  93. {  
  94.         if ($str == ''return 0;  
  95.  
  96.         $count = 0;  
  97.         while (1){  
  98.                 if ($str[$count] != NULL){  
  99.                         $count++;  
  100.                         continue;  
  101.                 }else{  
  102.                         break;  
  103.                 }  
  104.         }  
  105.         return $count;  
  106. }  
  107.  
  108. //截取子串  
  109. function substr($str$start$length=NULL)  
  110. {  
  111.         if ($str=='' || $start>strlen($str)) return;  
  112.         if (($length!=NULL) && ($start>0) && ($length>strlen($str)-$start)) return;  
  113.         if (($length!=NULL) && ($start<0) && ($length>strlen($str)+$start)) return;  
  114.         if ($length == NULL) $length = (strlen($str) - $start);  
  115.           
  116.         if ($start < 0){  
  117.                 for ($i=(strlen($str)+$start); $i<(strlen($str)+$start+$length); $i++) {  
  118.                         $substr .= $str[$i];  
  119.                 }  
  120.         }  
  121.  
  122.         if ($length > 0){  
  123.                 for ($i=$start$i<($start+$length); $i++) {  
  124.                         $substr .= $str[$i];  
  125.                 }  
  126.         }  
  127.  
  128.         if ($length < 0){  
  129.                 for ($i=$start$i<(strlen($str)+$length); $i++) {  
  130.                         $substr .= $str[$i];  
  131.                 }  
  132.         }  
  133.         return $substr;  
  134. }  
  135.  
  136. //字符串翻转  
  137. function strrev($str)  
  138. {  
  139.         if ($str == ''return 0;  
  140.         for ($i=(strlen($str)-1); $i>=0; $i--){  
  141.                 $rev_str .= $str[$i];  
  142.         }  
  143.         return $rev_str;  
  144. }  
  145.  
  146.  
  147. //字符串比较  
  148. function strcmp($s1$s2)  
  149. {  
  150.         if (strlen($s1) < strlen($s2)) return -1;  
  151.         if (strlen($s1) > strlen($s2)) return 1;  
  152.  
  153.         for ($i=0; $i<strlen($s1); $i++){  
  154.                 if ($s1[$i] == $s2[$i]){  
  155.                         continue;  
  156.                 }else{  
  157.                         return false;  
  158.                 }  
  159.         }  
  160.         return 0;  
  161. }  
  162.  
  163.  
  164. //查找字符串  
  165. function strstr($str$substr)  
  166. {  
  167.         $m = strlen($str);  
  168.         $n = strlen($substr);  
  169.         if ($m < $nreturn false;  
  170.  
  171.         for ($i=0; $i<=($m-$n+1); $i++){  
  172.                 $sub = substr($str$i$n);  
  173.                 if (strcmp($sub$substr) == 0)  return $i;  
  174.         }  
  175.         return false;  
  176. }  
  177.  
  178. //字符串替换  
  179. function str_replace($substr$newsubstr$str)  
  180. {  
  181.         $m = strlen($str);  
  182.         $n = strlen($substr);  
  183.         $x = strlen($newsubstr);  
  184.         if (strchr($str$substr) == false) return false;  
  185.  
  186.         for ($i=0; $i<=($m-$n+1); $i++){  
  187.                 $i = strchr($str$substr);  
  188.                 $str = str_delete($str$i$n);  
  189.                 $str = str_insert($str$i$newstr);  
  190.         }  
  191.         return $str;  
  192. }  
  193.  
  194.  
  195.  
  196. //--------------------  
  197. // 自实现字符串处理函数 
  198. //--------------------  
  199.  
  200. //插入一段字符串  
  201. function str_insert($str$i$substr)  
  202. {  
  203.         for($j=0; $j<$i$j++){  
  204.                 $startstr .= $str[$j];  
  205.         }  
  206.         for ($j=$i$j<strlen($str); $j++){  
  207.                 $laststr .= $str[$j];  
  208.         }  
  209.         $str = ($startstr . $substr . $laststr);  
  210.  
  211.         return $str;  
  212. }  
  213.  
  214. //删除一段字符串  
  215. function str_delete($str$i$j)  
  216. {  
  217.         for ($c=0; $c<$i$c++){  
  218.                 $startstr .= $str[$c];  
  219.         }  
  220.         for ($c=($i+$j); $c<strlen($str); $c++){  
  221.                 $laststr .= $str[$c];  
  222.         }  
  223.         $str = ($startstr . $laststr);  
  224.  
  225.         return $str;  
  226. }  
  227.  
  228. //复制字符串  
  229. function strcpy($s1$s2)  
  230. {  
  231.         if (strlen($s1)==NULL || !isset($s2)) return;  
  232.  
  233.         for ($i=0; $i<strlen($s1); $i++){  
  234.                 $s2[] = $s1[$i];  
  235.         }  
  236.         return $s2;  
  237. }  
  238.  
  239. //连接字符串  
  240. function strcat($s1$s2)  
  241. {  
  242.         if (!isset($s1) || !isset($s2)) return;  
  243.         $newstr = $s1;  
  244.         for($i=0; $i<count($s); $i++){  
  245.                 $newstr .= $st[$i];  
  246.         }  
  247.         return $newsstr;  
  248. }  
  249.  
  250. //简单编码函数(与php_decode函数对应)  
  251. function php_encode($str)  
  252. {  
  253.         if ($str=='' && strlen($str)>128) return false;  
  254.  
  255.         for($i=0; $i<strlen($str); $i++){  
  256.                 $c = ord($str[$i]);  
  257.                 if ($c>31 && $c<107) $c += 20;  
  258.                 if ($c>106 && $c<127) $c -= 75;  
  259.                 $word = chr($c);  
  260.                 $s .= $word;  
  261.         }   
  262.  
  263.         return $s;   
  264. }  
  265.  
  266. //简单解码函数(与php_encode函数对应)  
  267. function php_decode($str)  
  268. {  
  269.         if ($str=='' && strlen($str)>128) return false;  
  270.  
  271.         for($i=0; $i<strlen($str); $i++){  
  272.                 $c = ord($word);  
  273.                 if ($c>106 && $c<127) $c = $c-20;  
  274.                 if ($c>31 && $c<107) $c = $c+75;  
  275.                 $word = chr($c);  
  276.                 $s .= $word;  
  277.         }   
  278.  
  279.         return $s;   
  280. }  
  281.  
  282. //简单加密函数(与php_decrypt函数对应)  
  283. function php_encrypt($str)  
  284. {  
  285.         $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';  
  286.         $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';  
  287.  
  288.         if (strlen($str) == 0) return false;  
  289.  
  290.         for ($i=0; $i<strlen($str); $i++){  
  291.                 for ($j=0; $j<strlen($encrypt_key); $j++){  
  292.                         if ($str[$i] == $encrypt_key[$j]){  
  293.                                 $enstr .= $decrypt_key[$j];  
  294.                                 break;  
  295.                         }  
  296.                 }  
  297.         }  
  298.  
  299.         return $enstr;  
  300. }  
  301.  
  302. //简单解密函数(与php_encrypt函数对应)  
  303. function php_decrypt($str)  
  304. {  
  305.         $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';  
  306.         $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';  
  307.         if (strlen($str) == 0) return false;  
  308.         for ($i=0; $i<strlen($str); $i++){  
  309.                 for ($j=0; $j<strlen($decrypt_key); $j++){  
  310.                         if ($str[$i] == $decrypt_key[$j]){  
  311.                                 $enstr .= $encrypt_key[$j];  
  312.                                 break;  
  313.                         }  
  314.                 }  
  315.         }  
  316.         return $enstr;  
  317. }  
  318. ?> 
分享到:
获取fckeditor插入文章的图片函数 - php...
获取fckeditor插入文章的图片函数 在网上google了一阵,发现要把通过fckeditor插入文章中的图片取出来,网上写的都很麻烦,自己仔细研究了一下午,正则才刚刚开始学,写了下面这个函数,肯定还有很多不足,请各位指点一二。 /**     * 获取文章图片,能够获取fckeditor插入的图...
php curl_init函数用法 - php函数
php curl_init函数用法 php curl_init函数用法 首先,在C\windows里的php.ini中我打开了extension=php_curl.dll的功能,然后也重启了apapche,以下是我写的抓取百度中PHP的信息:   可为什么没反应呢?连测试的文字都没有,要是我把echo "测试一下";放到第一行就可以输出,我...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……