zoukankan      html  css  js  c++  java
  • 四种常见排序算法----php代码实现

    <?php 
    // 冒泡排序
    function bubble($value=[]){
        $length = count($value)-1; 
        for($j = 0;$j<$length;$j++){
            for($i = 0;$i<$length;$i++){
                if($value[$i+1]<$value[$i]){
                    $tmp = $value[$i+1];
                    $value[$i+1] = $value[$i];
                    $value[$i] = $tmp;
                }
            }
        }
        return $value;
    }
    $arr = array(5,2,10,22,1,10,9,6,4,55);
    var_dump(bubble($arr));
    echo "<br/>";
    
    //快速排序
    function quick($arr){
        $length = count($arr);
        if($length<=1){
            return $arr;
        }
        $base_num = $arr[0];
        $left_array = array();
        $right_array = array();
        for($i = 1;$i<$length;$i++){
            if($base_num>$arr[$i]){
                $left_array[] = $arr[$i];
            }else{
                $right_array[] = $arr[$i];
            }
        }
        $left_array = quick($left_array);
        $right_array = quick($right_array);
        return array_merge($left_array,array($base_num),$right_array);
    }
    $arr = array(5,2,10,22,1,10,9,6,4,55);
    var_dump(quick($arr));
    echo "<br/>";
    
    //选择排序
    function select($arr){
        for($i = 0,$len = count($arr);$i<$len-1;$i++){
            $p = $i;
            for($j = $i+1;$j<$len;$j++){
                if($arr[$p]>$arr[$j]){
                    $p = $j;
                }
            }
            if($p!=$i){
                $tmp = $arr[$p];
                $arr[$p] = $arr[$i];
                $arr[$i] = $tmp;
            }
        }
        return $arr;
    }
    $arr = array(5,2,10,22,1,10,9,6,4,55);
    var_dump(quick($arr));
    echo "<br/>";
    
    //插入排序
    function insert($arr){
        for($i=1,$len = count($arr);$i<$len;$i++){
            $tmp = $arr[$i];
            for($j = $i-1;$j>=0;$j--){
                if($tmp<$arr[$j]){
                    $arr[$j+1] = $arr[$j];
                    $arr[$j] = $tmp;
                }else{
                    break;
                }
            }
        }
        return $arr;
    }
    $arr = array(5,2,10,22,1,10,9,6,4,55);
    var_dump(quick($arr));
    echo "<br/>";
  • 相关阅读:
    制作完整的java可执行文件
    做最好的自己
    hadoop安装&单机配置
    虚拟机中不能识别U盘的解决方案
    扩展的欧几里得&中国剩余定理
    Java基础知识
    [转载] vim+ctags+taglist+cscope+cppcomplete+global
    [转载] tar 备份时如何保持权限
    [转载] Python没有switch语句的解决方法
    Makefile中一些特殊符号的意义
  • 原文地址:https://www.cnblogs.com/zgx123/p/7826991.html
Copyright © 2011-2022 走看看