Maison programmation quotidienne Connaissance PHP Analyse détaillée de l'algorithme de tri par sélection

Analyse détaillée de l'algorithme de tri par sélection

May 01, 2020 pm 03:54 PM
1

Tri par sélection

Le tri par sélection est l'un des algorithmes de tri les plus stables. Lors de son utilisation, plus la taille des données est petite, mieux c'est. Théoriquement parlant, le tri par sélection peut également être la méthode la plus courante à laquelle la plupart des gens pensent lors du tri.

Le tri par sélection est un algorithme de tri simple et intuitif. Comment ça marche :

Parcourez un tableau et, ce faisant, trouvez la valeur maximale et sa position dans le tableau. Ensuite, "échangez la position" de l'unité avec la valeur maximale avec la dernière unité du tableau. Après cela, la valeur maximale du tableau doit être placée à la dernière position.

Continuez à parcourir les données restantes dans le processus ci-dessus et faites la même chose. Ensuite, la valeur maximale de la partie restante peut également être placée à la dernière position de la partie restante - c'est l'avant-dernière position en tant que valeur. emplacement entier.

Et ainsi de suite. . . . . .

Image :

Tableau original
原始数组
18 22
12 15 23
9
第一趟 18
22 12 15 9 23
第二趟 18 9 12 15 22 23
第三趟 15 9 12 18 22 23
第四趟 12 9 15 18 22 23
第五趟 9 12 15 18 22 23
18 22

12 15 23 9
Premier voyage 18 22 12 15 9 23
Deuxième voyage 18 td>9 12 15 22 23 td>
Le troisième voyage 15 9 12 18 22 23
Le quatrième voyage 12 9 15 18 22 23
Le cinquième voyage 9 12 15 18 22 23
Le code est le suivant :

<?php
        $arr1 = array(18,22,12,15,23,9);
        $n = count($arr1);
        for ($i=0; $i < $n-1; $i++) { 
            //找最大值
            $max = $arr1[0];
            $max_key = 0;
            for ($k=0; $k < $n - $i; $k++) { 
                if ($arr1[$k] > $max) {
                    $max = $arr1[$k];
                    $max_key = $k;
                }
            }
            //交换
            $temp = $arr1[$max_key];
            $arr1[$max_key] = $arr1[$n-1-$i];
            $arr1[$n-1-$i] = $temp;
        }
Copier après la connexion

Règles récapitulatives :

1 Pour trouver la valeur maximale (et l'indice) du début à la fin, et pour l'échanger, le nombre de fois est $n-1, $n. est la longueur du tableau

2. Ce que vous devez faire dans chaque voyage est : a) trouver la valeur maximale, à droite) et échanger la valeur maximale avec le dernier élément de ce voyage

; 3. Le nombre de données pour trouver la valeur maximale dans chaque passe est inférieur de 1 à celui de la passe précédente, dont il y a $n dans la première passe.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)