排序算法-选择排序

Posted onlycat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法-选择排序相关的知识,希望对你有一定的参考价值。

思路: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完

复杂度: O(n^2)

实现一:

function selectSort($num){ 
    for($i = 0; $i < count($num); $i++){
        for($j = $i + 1; $j < $n; $j++){ 
            if($num[$i] > $num[$j]){ 
                $num[$i] ^= $num[$j];      
                $num[$j] ^= $num[$i];      
                $num[$i] ^= $num[$j];      
            }                              
        }
    } 
    return $num;                           
} 

实现二:

function selectSort($num){
        for($i = 0; $i < count($num); $i++){
            $k = $i;
            for($j = $i; $j < $n; $j++){
                if($num[$k] > $num[$j]){
                    $k = $j;
                }
            }
            if($i != $k){
                $num[$i] ^= $num[$k];
                $num[$k] ^= $num[$i];
                $num[$i] ^= $num[$k];
            }
        }
        return $num;
}

以上是关于排序算法-选择排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

选择排序(简单选择排序堆排序的算法思想及代码实现)

《算法》笔记 3 - 选择排序插入排序希尔排序

Java数据结构—排序算法

在第6731次释放指针后双重免费或损坏

三大基础排序算法(冒泡排序,选择排序,插入排序)