php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > 原生PHP >

PHP如何实现快速排序?

时间:2019-08-18 22:26来源:未知 作者:admin 点击:
快速排序算法代码如下: ?php function quick_sort($my_array) { $loe = $gt = array(); if(count($my_array) 2) { return $my_array; } $pivot_key = key($my_array); $pivot = array_shift($my_array); foreach($my_array as $val) { if($val =
快速排序算法代码如下:
 
 
<?php
 
function quick_sort($my_array)
 
{
 
    $loe = $gt = array();
 
    if(count($my_array) < 2)
 
    {
 
        return $my_array;
 
    }
 
    $pivot_key = key($my_array);
 
    $pivot = array_shift($my_array);
 
    foreach($my_array as $val)
 
    {
 
        if($val <= $pivot)
 
        {
 
            $loe[] = $val;
 
        }elseif ($val > $pivot)
 
        {
 
            $gt[] = $val;
 
        }
 
    }
 
    return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
 
}
 
 
 
$my_array = array(3, 0, 2, 5, -1, 4, 1);
 
echo '原始数组 : '.implode(',',$my_array).' ';
 
$my_array = quick_sort($my_array);
 
echo '排序后数组 : '.implode(',',$my_array);
 
输出:
 
 
 
原始数组:3,0,2,5,-1,4,1                             
 
排序后数组:-1,0,1,2,3,4,5
 
相关函数介绍:
 
array_shift()函数将数组开头的单元移出数组;
 
 
array_shift ( array &$array ) : mixed
 
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
 
array_merge()函数合并一个或多个数组;
 
 
array_merge ( array $array1 [, array $... ] ) : array
 
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐