美文网首页
PHP常用算法

PHP常用算法

作者: 墨丘利lh | 来源:发表于2018-08-02 13:22 被阅读0次

    //二分查找(数组里查找某个元素)  

    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

                    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常用算法

          本文链接:https://www.haomeiwen.com/subject/kaijvftx.html