10大经典排序算法之选择排序(PHP版)

发布时间:2020/11/20 作者:天马行空 阅读(964)

选择排序,是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。


算法步骤
1、假如数组有n个值,那么就进行n-1轮筛选,每轮都筛选出最小(大)值;
2、筛选出来的值放在每轮的开头;
3、下一轮就往后面移一个位置开始。


动图演示

selectionSort.gif


代码实现:

public function selectSort($arr)
{
    $length = count($arr);
    for ($i = 0; $i < $length - 1; $i ++) { // 进行$length-1轮筛选,每轮筛选出
        $minIndex = $i;
        for ($j = $i + 1; $j < $length; $j ++) {
            if ($arr[$j] < $arr[$minIndex]) {
                $minIndex = $j;
            }
        }
        if ($minIndex != $i) {
            $tmp = $arr[$i];
            $arr[$i] = $arr[$minIndex];
            $arr[$minIndex] = $tmp;
        }
    }
    return $arr;
}



关键字php 算法