寧毅網(wǎng)絡(luò)工作室

          寧毅網(wǎng)絡(luò)工作室提供專業(yè)的網(wǎng)站設(shè)計(jì)維護(hù)制作服務(wù)

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            18 隨筆 :: 93 文章 :: 28 評(píng)論 :: 0 Trackbacks
          //--------------------
          // 基本數(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 < $array[$mid]){
          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<$n; $i++){
          if($array[$i]==$k){
          break;
          }
          }
          if ($i<$n){
          return $i;
          }else{
          return -1;
          }
          }

          //線性表的刪除(數(shù)組中實(shí)現(xiàn))
          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;
          }

          //冒泡排序(數(shù)組排序)
          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;
          }

          //快速排序(數(shù)組排序)
          function quicksort($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 = quicksort($left_arr);
          $right_arr = quicksort($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) && ($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;
          }


          //字符串翻轉(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) < 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;
          }



          //--------------------
          // 自實(shí)現(xiàn)函數(shù)
          //--------------------

          //插入一段字符串
          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;
          }

          //復(fù)制字符串
          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;
          }


          //簡(jiǎn)單編碼函數(shù)(與php_decode函數(shù)對(duì)應(yīng))
          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;
          }


          //簡(jiǎn)單解碼函數(shù)(與php_encode函數(shù)對(duì)應(yīng))
          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;
          }


          //簡(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<strlen($str); $i++){
          for ($j=0; $j<strlen($encrypt_key); $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<strlen($str); $i++){
          for ($j=0; $j<strlen($decrypt_key); $j++){
          if ($str[$i] == $decrypt_key[$j]){
          $enstr .= $encrypt_key[$j];
          break;
          }
          }
          }

          return $enstr;
          }

          主站蜘蛛池模板: 张家港市| 准格尔旗| 尼玛县| 曲松县| 小金县| 青州市| 左权县| 湘乡市| 金秀| 辽源市| 安远县| 德化县| 新乡市| 德庆县| 石门县| 昭平县| 仙桃市| 全南县| 兴安盟| 无极县| 苗栗县| 罗甸县| 太湖县| 渭南市| 柘荣县| 临西县| 连平县| 巴楚县| 淮阳县| 图片| 城口县| 西盟| 临安市| 德格县| 永德县| 新龙县| 汕头市| 岳池县| 洪江市| 广东省| 福建省|