• 四种简单的排序算法的php实现


      无聊,用php写几个排序算法,算法介绍请移步这里,这里使用php实现了几个简单的,如下

    //选择排序
    function selection_sort($arr){
        $len = count($arr);
        if($len <= 1) return $arr;
        
        for($i=0; $i<$len; $i++){
            $min = $arr[$i];
            $pos = $i;
            for($j=$i+1; $j<$len; $j++){
                if($min > $arr[$j]){
                    $min = $arr[$j];
                    $pos = $j;
                }
            }
            if($pos != $i){
                $arr[$pos] = $arr[$i];
                $arr[$i] = $min;
            }
        }
        return $arr;
    }
    
    //插入排序
    function insertion_sort($arr){
        $len = count($arr);
        if($len <= 1) return $arr;
        
        for($i=1; $i<$len; $i++){
            $insertion = $arr[$i];
            $j = $i - 1;
            while($insertion < $arr[$j]){
                $arr[$j+1] = $arr[$j];
                $j--;
                if($j < 0)break;
            }
            if($j == $i-1) continue;
            $arr[$j+1] = $insertion;
        }
        return $arr;
    }
    
    //冒泡排序
    function bubble_sort($arr){
        $len = count($arr);
        if($len <= 1) return $arr;
        
        for($i=0; $i<$len; $i++){
            for($j=$len-1; $j>$i;  $j--){
                if($arr[$j] < $arr[$j-1]){
                    $tmp = $arr[$j];
                    $arr[$j] = $arr[$j-1];
                    $arr[$j-1] = $tmp;
                }
            }
        }
        return $arr;
    }
    
    //快速排序
    function quick_sort($arr){
        $len = count($arr);
        if($len <= 1) return $arr;
        
        $base = current($arr);
        $left_arr = array();
        $right_arr = array();
        
        for($i=1; $i<$len; $i++){
            if($arr[$i] <= $base) $left_arr[] = $arr[$i];    
            if($arr[$i] > $base) $right_arr[] = $arr[$i];    
        }
        
        $left_arr = quick_sort($left_arr);
        $right_arr = quick_sort($right_arr);
        return array_merge($left_arr, array($base), $right_arr);
        
    }
    
    //test
    $arr = array(4, 3, 2, 1, 6);
    $arr_sorted = quick_sort($arr);
    print_r($arr_sorted);
  • 相关阅读:
    jq判断input 复选框有没有选
    jq根据id替换修改或添加css属性
    cookie和session的关系和区别
    tp5 统一返回json格式
    tp5 上传图片(自定义图片路径)
    tp5 生成随机数
    tp5 删除图片以及文件
    tp5 上传视频方法
    tp5 跨域问题
    js替换div里的内容
  • 原文地址:https://www.cnblogs.com/kekukele/p/4787633.html
Copyright © 2020-2023  润新知