旧文重整理:数据结构和字符串处理代码整理

整理一下以前写的部分算法和字符串处理函数,东西没有什么用,只是为了学习而已。 http://blog.csdn.net/heiyeshuwu/article/details/787426 Author: heiyeluren Blog: http://blog.csdn.net/heiyeshuwuDate: 2006-06-10 23:50 <? //-------------------- // 基本数据结构算法 //--------------------  //二分查找(数组里查找某个元素) 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 = ''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 ; }  //简单解密函数(与php_encrypt函数对应) 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 ; }  ?>   

转载于:https://www.cnblogs.com/gxldan/archive/2011/07/03/4066689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值