加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP实现几种经典算法详解

发布时间:2020-12-13 21:26:15 所属栏目:PHP教程 来源:网络整理
导读:1、冒泡排序(数组排序) 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 = $a

1、冒泡排序(数组排序)

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;  
} 

?

2、快速排序(数组排序)

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);  
}

?

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

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,$mid-1,$k);   
        }else{   
            return  bin_sch($array,$mid+ 1,$k);   
        }   
    }   
    return -1;   
}  

?

4、顺序查找(数组里查找某个元素)

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;   
    }   
} 

?

5、线性表的删除(数组中实现)

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 ;  
} 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读