Exemple de code pour l'implémentation php du tri par sélection

不言
Libérer: 2023-04-04 21:12:01
avant
3316 Les gens l'ont consulté

Ce que cet article vous apporte est un exemple de code pour implémenter le tri par sélection en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Tri par sélection

Le tri par sélection est un algorithme de tri simple et intuitif. Voici comment cela fonctionne. Tout d'abord, recherchez le plus petit (grand) élément de la séquence non triée et stockez-le au début de la séquence triée. Ensuite, continuez à rechercher le plus petit (grand) élément parmi les éléments non triés restants, puis placez-le à la fin de la séquence. séquence triée. Et ainsi de suite jusqu'à ce que tous les éléments soient triés.

Le principal avantage du tri par sélection concerne le mouvement des données. Si un élément est dans la bonne position finale, il ne sera pas déplacé. Chaque fois que le tri par sélection échange une paire d'éléments, au moins l'un d'entre eux sera déplacé vers sa position finale, donc le tri d'une liste de n éléments nécessite au plus n -1 échanges au total. Parmi toutes les méthodes de tri qui reposent entièrement sur l'échange pour déplacer des éléments, le tri par sélection est une très bonne méthode

Introduit dans Wikipédia. Le tri à bulles et le tri rapide introduits dans les deux premiers articles sont tous deux des méthodes de tri qui reposent entièrement sur l'échange pour déplacer les éléments.

Démonstration d'animation

Exemple de code pour limplémentation php du tri par sélection

Exemple de code pour limplémentation php du tri par sélection

Exemple

<?php $arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function selectSort($arr)
{
    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    for ($i = 0; $i < $count - 1; $i++) {
        // 当前值的位置
        $key = $i;
        for ($k = $i + 1; $k < $count; $k++) {
            // 相邻值进行比较,条件成立替换当前值
            // 倒序 $arr[$key] < $arr[$k]
            if ($arr[$key] > $arr[$k]) {
                $key = $k;
            }
        }

        if ($key != $i) {
            // 交换位置
            $temp = $arr[$key];
            $arr[$key] = $arr[$i];
            $arr[$i] = $temp;
        }
    }

    return $arr;
}

print_r(selectSort($arr));
// Array ( [0] => 2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal