PHP面试常用的几个算法 [PHP相关]

作者:快乐的小飞侠 发布于:2016-11-14 浏览:464次 收藏

<?php
    //二分法查找数组中的某个元素(升序数组)
    function search($array,$k,$low = 0, $high = 0){
        if(count($array) != 0 && $high == 0){
            $high = count($array);
        }
        if($low <= $high){
            $mid = intval(($low + $high)/2);
            if($array[$mid] == $k){
                return $mid;
            }else if($array[$mid] < $k){
                return search($array,$k,$low = 0, $mid +1);
            }else{
                return search($array,$k,$low = 0, $mid +1);
            }
        }
        return '你找的元素不存在';
    }
    
    //快速查找数组中的某个元素
    function search($array,$k){
        $count = count($array);
        
        for($i = 0;$i<= $count;$i++){
            if($array[$i] == $k){
                break;
            }
        }
        
        if($i < $count) {
            return $i;
        }else{
            return '你找的元素不存在';
        }
    }
    
    //冒泡法查找数组中的某个元素
    
    function search($array) {
        $count = count($array);
        
        for($i = 1;$i<$count;$i++) {
            for($k = 0;$k<$count-1;$k++){
                if($array[$k+1] < $array[$k]);
                $tmp = $array[$k+1];
                $array[$k+1] = $array[$k];
                $array[$k] = $tmp
            }
        }
    }
    
    //快速排序法
    
    function quick($array){
        $count = count($array);
        $base_num = $array[0];
        $left_num = [];
        $right_num = [];
        for($i = 1;$i<$count;$i++){
            if($array[$i]<$base_num){
                $left_num[] = $array[$i];
            }else{
                $right[] = $array[$i];
            }
        }
        $left_num = qucik($left_num);
        $right_num = quick($right_num);
        $array = array_merge($left_num,array($base_num),$right_num);
        return $array
    }
?>


如果文章对您有所帮助,希望继续支持我们,您的支持是我们最大的动力 ¥打赏
标签: php 算法
声明:文章内容由作者原创或整理,未经允许,不得转载!
您需要登录后才可以评论。登录 | 立即注册