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
  • 相关阅读:
    2-4 递增链表的插入 链表
    KMPnext数组自看
    Shortest Prefixes POJ
    Xor Sum HDU
    Immediate Decodability HDU
    Repository HDU
    "strcmp()" Anyone? UVA
    Remember the Word UVALive
    A Magic Lamp HDU
    Check Corners HDU
  • 原文地址:https://www.cnblogs.com/paopao123/p/11131287.html
Copyright © 2011-2022 走看看