整理一下以前写的部分算法和字符串处理函数,东西没有什么用,只是为了学习而已。
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