排序算法之 - 选择排序

选择排序

选择排序也是重复执行一个动作的流程:从 待排序列表 中查找 最小 的元素,将它与 待排序列表第一个元素进行 交换,交换之后第一个元素进入 已排序列表除去 第一个元素之后的其他元素组成 下一轮的待排序列表,其初始状态如图:

 

第一轮运行流程及结果:

 

 

第二轮运行流程及结果:

 

 

第三轮运行流程及结果:

第四轮运行流程及结果:

第五轮运行流程及结果:

第六轮运行流程及结果:

 

第七轮运行流程及结果:

 

第八轮运行流程及结果:

附PHP实现代码:

复制代码
<?php

function selection($arrayNeedsSort)
{
    $length = count($arrayNeedsSort);
    for ($i = 0; $i < $length - 1; $i++) {
        $compare = $arrayNeedsSort[$i];
        $pos = $i;
        for ($j = $i + 1; $j < $length; $j++) {
            if ($compare > $arrayNeedsSort[$j]) {
                $compare = $arrayNeedsSort[$j];
                $pos = $j;
            }
        }
        $tmp = $arrayNeedsSort[$pos];
        $arrayNeedsSort[$pos] = $arrayNeedsSort[$i];
        $arrayNeedsSort[$i] = $tmp;
    }

    return $arrayNeedsSort;
}

$array = [5, 9, 3, 1, 2, 8, 4, 7, 6];
$res = selection($array);
echo '<pre>';
print_r($res);

运行结果:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)
复制代码

 

posted @   寂地烟火  阅读(87)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示