好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

基本数据结构算法 - php函数

基本数据结构算法

<?   //--------------------    // 基本数据结构算法   //--------------------      //二分查找(数组里查找某个元素)    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 ;   }   ?> 

查看更多关于基本数据结构算法 - php函数的详细内容...

  阅读:42次