//---------- -------------
//二分探索 (配列内の要素の検索)
function bin_sch($array, $low, $high, $k){
if ($low <= $high){
Return $ MID} Elseif ($ k & lt; $ array [ $ mid]) {
return bin_sch ($ array, $ low, $ k);
} else {
{
return bin_sch($array, $mid+ 1, $high, $k); }
//逐次検索(配列要素内の特定の項目を検索)
function seq_sch($array, $n, $k){
$array[$n] = $k;
for($i=0; $i<$n; $i++) {
if ($i<$n){
return $i }else{
return -1 ;}}
//線形テーブルの削除(配列に実装)使用の使用を使用して、使用を使用してOut Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Out Outから
//冒泡排序(数组排序)
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
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; )
{
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);
for ($i =(strlen( $str)+$start); ;(strlen ($str)+$start+$length ); $i++) {
}
}
if ($length > 0){
for ($i= $start; $ i<($start+$length); $i++) {
[$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)) -1 を返します。
if (strlen($s1) > strlen( $s2)) return 1;
for ($i =0; $i
if ($s1[ $i] == $s2[$i]){
続けます。
else{
return false;
}
}
return 0;
}
//查找文字列
関数 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) ;
i<=($m - $n+1){
str_insert($str, $i, $newstr); --
//セルフ-実装された文字列処理関数
//----------------------------
//文字列を挿入する
関数str_insert($str, $i, $substr)
{
for($j=0; $j<$i; $j++){
]; function str_delete($str , $i, $j)
{
for ( $c=0; $c<$i; $c++){
$startstr .= $str [$c]
$c =( $i+$j); $c
$str = ($startstr . $laststr );ストラ;
}
/ /文字列をコピー
function strcpy($s1, $s2)
{
If (strlen($s1) ==NULL || !isset( $s2)) return; =0; $i
$s2[] = $s1 [$i ];
//接続文字列
function strcat($s1, $s2)
{
if (!isset($s1) || !isset($s2)) return; = $s1;
for($i=0; $i
} Return $ Newsstr;
// 単純なエンコードfunction (PHP_DECODE 関数に対応)
Function php_encode ($ Str) {
if ($ Str == '' && Strlen ( $str)>128) return false;
for( $i= 0; ($c );
//簡易デコード関数(php_encode関数に相当)
function php_decode ($str)
{
if ($str==''&& strlen($str)> 128) false を返す
for($i=0; $i
$c
//簡易暗号化関数(php_decrypt関数に相当)
function php_encrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567 890'; len($str) == 0) false を返します;
for ($i=0; $i
for ($j=0; $ j & lt; strlen ($ enCrypt_Key); $ j ++) {
if ($ Str [$ i] == $ Encrypt_Key [$ j]) {
$ ENSTR. = $ Decrypt_Key [$ j]
}
} return $enstr;
}
//単純な復号化関数 (php_encrypt 関数に対応)
function php_decrypt($str )
{
yivrsj2468021359';
if (strlen( $str) == 0) false を返します
for ($i= 0; $i
if ($str [$i] == $decrypt_key [$j]){
休憩
$ enstr;
}
?>
上記では、PHP のさまざまな古典的なアルゴリズムの実装をその側面も含めて紹介していますが、PHP チュートリアルに興味のある友人に役立つことを願っています。