您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        冒泡排序:
1. 算法慢,不需要额外空间
2. 示例代码:
$arr = [1,3,5,4,2,6,8,5,4,9,0];
function bubbleSort($arr){
    //数组长度 -- 决定循环的次数(长度-1次循环)
    $arrLength = count($arr);
    for ($i=0; $i < $arrLength-1 ; $i++){
        for($j=1; $j< $arrLength-1; $j++){
            if ($arr[$j]>$arr[$j+1]) {
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
        }
    }
    return $arr;
}
print_r(bubbleSort($arr));快速排序:
1. 最高效,需要很大的空间
2. 示例代码:
$arr = [1,3,5];
function quickSort($arr){
    $arrLength = count($arr);
    if ($arrLength<=1) {
        return $arr;
    }
    $baseVal = $arr[0];
    $leftArr = [];
    $rightArr = [];
     
    //因为第一个已被取出,所以从第二个开始 -- i=1
    for($i=1; $i<$arrLength; $i++){
        if ($baseVal > $arr[$i]) {
            $leftArr[] = $arr[$i];
        }
        else{
            $rightArr[] = $arr[$i];
        }
    }
    $leftArr = quickSort($leftArr);
    $rightArr = quickSort($rightArr);
    return array_merge($leftArr,array($baseVal),$rightArr);
}
print_r(quickSort($arr));函数排序:
sort();
1. 对数组进行排序;函数结束时,数组单元将被小到大排序,大写在前
2. 示例代码:
$fruits = ["lemon", "orange", "Lemon", "banana", "apple"];
sort ($fruits);
$arr = [];
foreach ($fruits as $key => $value) {
    $arr[$key] = $value;
}
print_r($arr);ksort();
1. 主要用于关联数组;对数组按照键名排序,保留键名到数据的关联
2. 示例代码:
$fruits  = [
           "d" => "lemon",
           "a" => "orange",
           "b" => "banana",
           "c" => "apple",
        ];
ksort ($fruits);
$arr = [];
foreach ($fruits as $key => $val) {
    $arr[$key] = $val;
}
print_r($arr);usort();
1. 使用用户自定义的比较函数对数组中的值进行排序,删除原有键名
2. 示例代码:
function  mySort($a, $b)
{
    if($a == $b){
        return  0;
    }
    //根据返回值1或是-1进行排序;
    //-1:1为小到大; 1:-1为大到小
    return ($a < $b)? 1 : -1;
}
$a = [3, 2, 5, 6, 1];
usort($a, "mySort");
$arr = [];
foreach ($a as $key => $value){
    $arr[$key] = $value;
}
print_r($arr);免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。