算法原理:

简单选择排序的基本思想:比较+交换。

  1. 从待排序序列中,找到关键字最小的元素;
  2. 如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
  3. 从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。

java:

public static void selectSort(int[] array) {
    int n = array.length;
    for (int i = 0; i < n; i++) {
        int minIndex = i;
        for (int j = i + 1; j < n; j++) {
            if (array[minIndex] > array[j]) {
                minIndex = j;
            }
        }
        if (i != minIndex) {
            int temp = array[i];
            array[i] = array[minIndex];
            array[minIndex] = temp;
        }
    }
}

php:

function selectSort($arr) {
    $length = count($arr);
    for ($i = 0; $i < $length; $i++) {
        $minKey = $i;
        for ($j = $i + 1; $j < $length; $j++) {
            if ($arr[$minKey] > $arr[$j]) {
                $minKey = $j;
            }
        }
        if ($minKey != $i) {
            $temp = $arr[$minKey];
            $arr[$minKey] = $arr[$i];
            $arr[$i] = $temp;
        }
    }
    return $arr;
}