php基础教程-数组选择排序算法[技术分享]

选择排序

1、假设第一个元素为最小元素,记下下标

2、寻找右侧剩余元素,若有更小的,则记下更小的下标

3、一行对比完成后,交换第一个和最小的元素

4、重新开始以上操作

示例地址:https://www.vqqc.cn/try/php/basics/selection.php

示例代码

<?php


// 数组排序算法:选择排序
$arr = array(1,5,2,9,6,3,4);

// 1、确定要交换多少次:一次只能找到一个最小的,需要找到数组长度对应的次数
for($i = 1, $len = count($arr); $i < $len;$i++ ){
    // 2、假设第一个已经排好序
    $min = $i;                              //当前第一个数是最小的
    // 3、拿该最小的取比较剩余的其他
    for($j = $i + 1; $j < $len; $j++){
        //4、 比较当前元素与选定的最小的元素
        if($arr[$j] < $arr[$min]){
            // 说明当前指定的$min不合适
            $min = $j;
        }
    }
    // 5、交换当前选定的值与实际最小的元素值
    if($min !=$i){
        $temp =  $arr[$i];
        $arr[$i] = $arr[$min];
        $arr[$min] = $temp;
    }
}
echo '<pre>';
print_r($arr);

返回结果

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 9
)
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容