zoukankan      html  css  js  c++  java
  • 排序

    <?php
    
    $array=array(2,5,3,2,7,8,9,0,6,7);
    
    echo '<pre>';
    print_r($array);
    
    /**
     * 直接插入排序 0.1
     */
    function insertSort(&$array){
        for($i=1,$len=count($array);$i<$len;$i++){
            $j=$i;
            $tmp=$array[$j];
            if($tmp<$array[$j-1]){
                while($j>=0 && $array[$j-1]>$tmp){
                    $array[$j]=$array[$j-1];
                    $j--;
                }
                $array[$j]=$tmp;
            }
        }
    }/**
     * 冒泡排序 0.25
     */
    function bubblingSort(&$array){
        for($i=0,$len=count($array);$i<$len-1;$i++){
            for($j=$i+1;$j<$len;$j++){
                if($array[$j]<$array[$i]){
                    $tmp=$array[$i];
                    $array[$i]=$array[$j];
                    $array[$j]=$tmp;
                }
            }
        }
    }
    
    /**
     * 快速排序 0.65
     */
    function quickSort($array){
        $len=count($array);
        if($len<=1)
            return $array;
        $key=$array[0];
        $left=$right=array();
        for($i=1;$i<$len;$i++){
            if($array[$i]<$key){
                $left[]=$array[$i];
            }else{
                $right[]=$array[$i];
            }
        }
        $left=quickSort($left);
        $right=quickSort($right);
        return array_merge($left,array($key),$right);
    }
    
    /**
     * 二分查找法
     */
    function binarySearch($array,$search){
        $start=0;
        $end=count($array)-1;
        while($start<=$end){
            $mid=ceil(($start+$end)/2);
            if($array[$mid]==$search){
                return true;
            }elseif($array[$mid]<$search){
                $start=$mid+1;
            }else{
                $end=$mid-1;
            }
        }
        return false;
    }
    
    //debug_zval_dump(binarySearch($array,9));
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ?>
  • 相关阅读:
    Linux ps 查看进程
    Linux free命令
    Linux sar命令
    php 上传文件
    sql 计算周围公里语句
    mysql sum 和 count 函数 合并使用
    php函数 ceil floor round和 intval
    linux sort 命令
    Sicily 2711. 模板与STL 解题报告
    堆排序
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/php.html
Copyright © 2011-2022 走看看