> 백엔드 개발 > PHP 튜토리얼 > PHP는 다양한 클래식 알고리즘을 구현합니다.

PHP는 다양한 클래식 알고리즘을 구현합니다.

WBOY
풀어 주다: 2016-07-29 09:01:03
원래의
992명이 탐색했습니다.

//----------------
// 기본 데이터 구조 알고리즘
//---------------------------- -
//이진 검색(특정 요소를 배열로 검색)
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿