zoukankan      html  css  js  c++  java
  • php 常见的算法 排序

    (1) 冒泡排序 

    function BubbleSort(array $arr)
    {
    
        for ($i=0 ; $i <count($arr) ; $i++) {
            //设置一个空变量
            $data = '';
            for ($j=$i ; $j < count($arr)-1 ; $j++) {
                if ($arr[$i] > $arr[$j+1]) {
    
                    $data      = $arr[$i];
                    $arr[$i]   = $arr[$j+1];
                    $arr[$j+1] = $data;
                }
            }
        }
    
        return $arr;
    }
    View Code

    (2)快速排序

    //快速排序
    function quick_sort($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_sort($left_array);
        $right_array = quick_sort($right_array);
        //合并左边 标尺 右边
        return array_merge($left_array, array($base_num), $right_array);
    }
    View Code
  • 相关阅读:
    DP(第三版(较简单))
    【テンプレート】洛谷
    【説明する】并查集
    第一篇博文
    cogs 2398 切糕 最小割
    cogs 1873 happiness 最大权闭合子图
    cogs 1274 最小截断 最小割唯一判定
    cogs 736 星际转移 最大流
    cogs 329 K-联赛 最大流
    cogs 2605 寒假ing
  • 原文地址:https://www.cnblogs.com/paopao123/p/11131287.html
Copyright © 2011-2022 走看看