zoukankan      html  css  js  c++  java
  • 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 = $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, $low,  $mid-1, $k);   
            }else{   
                return  bin_sch($array, $mid+ 1, $high, $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 ;  
    } 
    慢慢来才是最快的
  • 相关阅读:
    vue项目中兼容ie8以上浏览器的配置
    vue项目中event bus的简单使用
    js中的正则表达式小结1
    sourceTree跳过注册
    日期时间格式化
    阿里矢量图标库的使用
    mySql 常用命令
    php 常用的系统函数
    php mySql常用的函数
    php 关于php创建 json文件 和 对文件增删改查 示例
  • 原文地址:https://www.cnblogs.com/jongty/p/11653802.html
Copyright © 2011-2022 走看看