//----------------
// 기본 데이터 구조 알고리즘
//---------------------------- -
//이진 검색(특정 요소를 배열로 검색)
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);
//순차 검색(배열에서 요소 검색)
function seq_sch($ 배열, $n, $k){
$array[$n] = $k
for($i=0; $i<$n; $i++){
if( $array[$i]==$k ){
i<$n) {
> }
}
//선형 테이블 삭제(배열로 구현)
function delete_array_element($array, $i )
{
$len = count($array)
for ($j= $i; $j<$ len; $j ++){
$array[$j] = $array [$j+1]
} }
array_pop ( $array)
$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]){
$array [$j] = $array[ $j-1];
> > <🎜 🎜> // 빠른 정렬 (배열 정렬) <🎜 🎜> <🎜 🎜>
function Quick_Sort ($ array) {<🎜 🎜> if (count ($ array ) <= 1) $array;
$key = $array [0]
$left_arr =
$right_arr = array();
for ($i= 1; $i if ( $array[ $i] <= $key)
$left_arr [] = $array[$i]
else
$right_arr[] = $array[$i]
r)
return array_merge($left_arr, array($key), $right_arr) ;
}
//---------
// PHP 내장 문자열 함수 구현
//---------
//문자열 길이
함수 strlen ($str)
{
if ($str == '' ) return 0; $count = 0;
while (1){
if ($str[$count] != NULL){
$count++;
계속;
}else{
~ 🎜>//하위 문자열 가로채기
함수 substr($str, $start, $length=NULL)
{
if ($str== '' || $start>strlen( $str )) 반환
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 > for ($i= $ $i<($start+$length); $i++) {
$substr .= $str[$i];
if ( $length < 0){
for($i =$start; $i<(strlen($str)+$length); $ i++) {
$substr .= $str[$i ];
}
}
return $substr;
}
//字符串翻转
함수 strrev($str)
{
if ($str == '') return 0 ;
for ($i=(strlen($str)- 1); $i>=0; $i --){
$rev_str .= $ str[$i ];
}
return $rev_str;
}
//字符串比较
함수 strcmp($s1, $s2)
{
if (strlen($s1) < strlen($s2)) return -1 ;
if (strlen($s1) > strlen( $s2)) return 1;
for ($i =0; $i
if ($s1[ $i] == $s2 [$i]){
계속;
}else{
false를 반환합니다.
}
}
return 0;
}
//查找字符串
함수 strstr($str, $substr)
{
$m = strlen($str);
$n = strlen($substr );
if ($m < $n) 반환 false ;
for ($i=0; $i <=($m-$n+1); $i ++){
$sub = substr ($str, $i, $n);
if ( strcmp($sub, $substr) == 0) return $i;
}
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); 턴 $str ; //----------------
//자체 구현된 문자열 처리 함수
//------------------
/ /삽입 문자열
function str_insert($str, $i, $substr)
{
for($j= 0 ; $ j<$i; $j ++){
$startstr .= $str[$j]
} for ($j=$ i; $j
$laststr .= $str[$j];
|
//문자열 삭제
function str_delete($str, $i, $j)
{
for ( $c=0; $c<$i; $c++){
$startstr .= $str [$c]
.=" //문자열 복사
function strcpy($s1, $ s2)
{
if (strlen($s1)==NULL || !isset($s2)) return
for ($i=0; $i
$s2[] = $s1 [$i];
} $s2 반환
}
//연결 문자열
function strcat($s1, $s2)
{
if (!isset($s1) || !isset( $s2)) return
$newstr = $s1
for($i=0 ; $i
$newstr .= $st[$i]
}
return $newsstr;
}
//간단한 인코딩 함수(php_decode 함수에 해당)
함수 php_encode($str)
{
if ( $str=='' && strlen( $str)>128) return false
for( $i=0; $i
$c = ord($str[$i])
if ($c>31 && $c <107) $c += 20
if ($c>106 && $c < 127) $c -= 75 ;
$word = chr($c); 🎜> $ 반환
}
// 단순 디코딩 함수(php_encode 함수에 해당)
function php_decode ($str)
{
if ( $str== '' && strlen($str )>128) return false
for( $i=0; $i $c = ord($word)
if ( $c>106 && $c<127 ) $c = $c-20; if ($c>31 && $c<107) $c = $c+75 ;
$word = chr( $c)
$s 반환
}
//간단한 암호화 기능(php_decrypt 기능에 해당)
function php_encrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'
(strlen($str) == 0) false를 반환합니다. ;
for ($i=0; $i
for ($j=0; $j < ;strlen($encrypt_key); $j ++){
if ($str[$i] == $encrypt_key [$j]){
$ enstr .= $decrypt_key[$j];
중단
>
$ enstr;
}
//간단한 복호화 기능(php_encrypt 함수에 해당)
function php_decrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359' ;
만약 ( strlen($str) == 0) return false;
for ($i=0; $i
for ($j=0; $j
if ($str [$i] == $decrypt_key [$j ]){
휴식 $enstr 반환
>? >
원본 주소: http://www.360doc.com/content/14/0319/16/15326015_361910933 .shtml
위 내용은 PHP의 다양한 클래식 알고리즘 구현을 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.