ホームページ > php教程 > php手册 > データ構造と文字列処理コードの構成

データ構造と文字列処理コードの構成

WBOY
リリース: 2016-06-21 09:06:49
オリジナル
895 人が閲覧しました

データ|データ構造|文字列

以前に書いたアルゴリズムと文字列処理関数の一部を整理します。これらは役に立たず、学習用です。

著者: heiyeluren
ブログ: http://blog.csdn.net/heiyeshuwu
日付: 2006-06-10 23:50


//----- ---------------
//基本的なデータ構造アルゴリズム
//------------------------------------- -

//2 点検索 (配列内の要素を見つける)
function bin_sch($array, $low, $high, $ k){
$low+$ high)/
2);
$mid
-
1$k); $中旬 +1 , $high
,
$k
); //逐次検索 (配列内の要素を検索) 関数
seq_sch
(
$array
, $n
, $k){ $array
[ $n
] = $k; for($i=0; $i<$n
; $i

++){ if(
$array[$i]==$k){ if (
$i

<
$n ){ } }

//線形テーブルの削除(arrayで実装)
function delete_array_element

(
$array
,

)
{
=
count
($array ); for ($j=
$i
)
++){ $array[] $j] = $array
[
$j
+1]; array_pop($array ); 戻る
( $array
) { lt;= 0) false ; for($i
=
0
; ) $ i<$count
;
$i
++){

$j
=$count
-1; >$i
; --){ ;if ($array[$j] < $array[$j-1]){
$array[ $j]; ] =
$array
[
$j-1 ]; $tmp ; ; }

//クイックソート(配列ソート)
function quick_sort($array) { if (
count) (

$配列

) <=
1
) return
$array

;
=配列(); $right_arr = array(); $i
<
count
($array); $i+ +){i]&lt; =
$key

それ以外の場合
) ; array_merge($left_arr, array($ key
),

$right_arr
); //-------------------------- // PHP 組み込み文字列関数の実装//--------------- ---------- //文字列の長さ
関数
strlen ($str) {
0

; (1){if($str[$count]!=
null



){
$count

++;

$count

; } //部分文字列
function substr

(
$str, $start $長さ
= NULL

) { ($str
==' '
|| $start
>
strlen
($str )) 戻ります;        if (($length!=NULL) && ($start>0) && ($length>)ストレン( $str)-$start
)) return;
if ((
$length!=NULL) && ($start<0) && ($length) >ストラレン( $str)+$start
)) return; 
if (
$length == NULL) $length = (strlen($str) - $start
);

if (
$start < 0
){
for (
$i=( strlen($str)+$start ); $i<($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++){
}// string flip '') $i
>= $i


--)の 0


; $i
] ; $rev_str
;/ string compartionstrcmp($s1
$s2strlen

(
$s1) < strlen($s2
)) return -1
; ( $s1 ) > strlen($s2)) 1を返します。 0 $ i
<
strlen
($s1); $i
++){ if($s1[$i] == $s2[$i] { strstr($str, $substr


) { $n
=
strlen

(
$substr (
$i
)
=

0
;
$i
<=($m-$n+$i);
++) {

$sub = substr($str,
$i
,
$n); ($サブ
, $substr
) == 0) return $i }
false

; //文字列置換関数 str_replace($substr, $newsubstr, $str) {
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
];
$startstr
str_delete($str $i$j
)
{
for (
$c
=
0

;
$c
<
$i ; $c++){ for ($i+$j
); $str
);
$c ++){ $str = ($startstr . $laststr リターン $s1
$s2
) { If (strlen($s1
)==NULL

|| !isset(
$s2 )) return; () $i=0; $i<strlen($s1
); ++){ $s2[] = $s1[$i]

;
関数

strcat
( $s1
$s2) { ) || !isset($s2
))
for(
$i= ) 0;
$i
<
($s);
[
$i
] ] ($str) if ) return false for($i
=0
)
$i< ;strlen($str)
$i

++) {
If ($c
>

31
&& $c
) <107) $c +=
20

;if (
$c>106 && $c<127) $c -= 75 ;
単語
=chr($c); $str
)
{
if ($str= =''
&&(
$str

)&g t;
128
) return
false

;
for(
$i= $c =
ord
(
$word ); <127) $ c=$c-20
; &&$c

<
107) $ c = $c+($c); s .=
$word
;//簡易暗号化関数(php_decrypt関数に相当)
function php_encrypt($str
)
{
$encrypt_key
= 'abcdefghijklmnopqrstuvwxyz1234567890 '
;
strlen
($str) ==
0 )

false
を返します ($i=) 0) $str);
$i

++){ $encrypt_key); $j ++){ ]) {=$decrypt_key[$j
];機能(php_encrypt関数に対応)
{
'abcdefghijklmnopqrstuvwxyz1234567890'; muhelkpdawxfyivrsj2468021359'; if (strlen($str ) == 0
) 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
]; 休憩。

}
}

return
$enstr
; }


?>



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート