詳細いくつかの古典的なアルゴリズムのPHP実装

1、バブルソート(並べ替えアレイ)

関数 bubble_sort($配列
{   
        $カウント = カウント$配列)。  
        もし$数 <= 0)を返す $ I ; = 0 $ iは < $カウント ; $ iは ++ ){  
                 ため$ J = $カウント -1; $ jの > $ I ; $のJ - ){  
                         場合$配列 [ $ jの <$配列 [ $ J -1 ]){  
                                  $ TMP = $配列 [ $のJ ]。  
                                 $配列 [ $ J = $配列 [ $ jを -1 ]。  
                                $配列 [ $ jを -1] = $ TMP 
                        }   
                }   
        }   
        リターン $配列;  
}

 

2、クイックソート(並べ替え配列)

関数 quick_sort($配列){  
         場合カウント$配列)<= 1)リターン  $アレイ$キー = $配列 [0 ]。  
        $ left_arr   = 配列();  
        $ right_arr = 配列();  
        $ I = 1; $ iが < カウント$配列); iは$ ++ ){  
                 場合$配列 [ $ I <= $キー$ left_arr [] = $配列 [ $ I ]。  
                他の  
                         $ right_arr [] = $配列 [ $ I ];  
        }   
        $ left_arr = quick_sort($ left_arr )。  
        $ right_arr = quick_sort($のright_arr )。  
        リターン array_merge$ left_arr配列$キー)、$のright_arr )。  
}

 

図3に示すように、二分探索(素子アレイを見つけるために)

関数 bin_sch($配列低$高$$ K ){   
     場合$低い <= $高い){   
         $ミッド =   INTVAL(($低い +の$ハイ)/ 2 )。   
        もし$配列 [ $中間 ] ==   $ K ){   
             戻り $ミッド
        } ELSEIF$ K < $配列 [ $中間]){   
             リターン  bin_sch($配列低$$半ば -1、$ K )。   
        } {   
             戻り   bin_sch($配列$ミッド + 1、高$$ K )。   
        }    
    }    
    戻り -1 
}  

 

4、シーケンシャルサーチ(素子アレイを見つけるために)

関数   seq_sch($配列$ N$ K ){   
     $配列 [ $のN ] =   $ K 以下のために$ I = 0;   $ iは < $ N$ iは ++ ){   
         場合$配列 [ $ I ] == $ K ){   
             破ります
        }    
    }    
    場合$ iは < $ Nを){   
         返す  私は$ 
    } {   
         戻り -1 
    }    
}

 

図5に示すように、リニアテーブル(アレイの実装)を除去

関数 delete_array_element($配列$ I 
{   
        $でlen =   カウント$配列)。   
        $のJ = $ I ; $ jの < $ lenは$のJ ++ ){  
                 $配列 [ $のJ ] = $配列 [ $ jを +1 ]。  
        }   
        array_pop$配列)。  
        リターン $配列;  
}

 

おすすめ

転載: www.cnblogs.com/jongty/p/11653802.html