+ 复制到我的接口(请先登录,支持在线开发API)    预览接口发布效果    查看开发教程

<?php


/**
 * PHP 快速排序接口 PHP接口源代码
 *
 * 接口说明:在数组中挑出一个元素(多为第一个)作为标尺,扫描一遍数组将比标尺小的元素排在标尺之前,将所有比标尺大的元素排在标尺之后,通过递归将各子序列分别划分为更小的序列直到所有的序列顺序一致
 *
 * 最后修改:2024-10-12 18:05:01
 *
 * @author dogstar www.yesapi.cn
 *
 * 来源:https://open.yesapi.cn/apicode/8897.html
 */

function ($params$di) {
    
// 快速排序
    
function quickSort($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 quickSort($left_array);
        
$right_array quickSort($right_array);
        
//合并左边 标尺 右边
        
return array_merge($left_array, array($base_num), $right_array);
    }

    
// 参数
    
$arr array_map('floatval'$params['arr']);
    
// 返回
    
return quickSort($arr);
}
在线运行   


回到顶部 ↑