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/>";
  • 相关阅读:
    Python Scrapy 爬虫入门
    Python Requests 高级用法
    Python Requests库快速入门
    linux 高并发事件触发处理 — epoll
    初识Python爬妹子图片
    android 使用gradle实现资源自动拷贝
    Android Studio Cmake使用 (附带demo)
    JNI 学习笔记
    Cmake 常见命令说明
    mybatis逆向工程生成代码
  • 原文地址:https://www.cnblogs.com/zgx123/p/7826991.html
Copyright © 2011-2022 走看看