Maison >développement back-end >tutoriel php >PHP implémente plusieurs solutions pour le tri des bulles

PHP implémente plusieurs solutions pour le tri des bulles

韦小宝
韦小宝original
2018-02-26 09:47:063712parcourir

Dans le développement PHP réel, nous rencontrerons beaucoup de tri, et le tri à bulles est également l'un des plus courants. Si nous voulons faire du bon travail dans le développement PHP, nous devons l'utiliser facilement. PHP pour implémenter le tri par bulles, cet article vous parlera du tri par bulles PHP ! Jetons un coup d'œil aux différentes manières d'implémenter le tri à bulles en PHP !

Le tri à bulles est très facile à comprendre et à mettre en œuvre. Prenons l'exemple du tri de petit à grand :
Supposons que la longueur du tableau soit N.
1. Comparez les deux données adjacentes avant et après. Si les premières données sont supérieures aux dernières données, les deux données seront échangées.
2. De cette façon, après avoir parcouru les 0èmes données jusqu'aux N-1èmes données du tableau, les données les plus volumineuses « couleront » vers la N-1ème position du tableau.
3. N=N-1, si N est différent de 0, répétez les deux étapes précédentes, sinon le tri est terminé.

Option 1 :

<?php
function bubble1_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    for ($i = 0; $i < $count; $i++) {
        for ($j = 0; $j < $count; $j++) {
            if ($array[$i] < $array[$j]) {
                $temp = $array[$i];
                $array[$i] = $array[$j];
                $array[$j] = $temp;
            }
        }
    }
    return $array;
}

Option 2 :

<?php
function bubble2_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    for ($i = 0; $i < $count; $i++) {
        for ($j = 1; $j < $count - $i; $j++) {
            if ($array[$j - 1] > $array[$j]) {
                $temp = $array[$j - 1];
                $array[$j - 1] = $array[$j];
                $array[$j] = $temp;
            }
        }
    }
    return $array;
}

Option 3 :

Définit un indicateur qui est vrai si un échange a eu lieu lors de ce voyage, faux sinon. Bien évidemment, si aucun échange n’a lieu lors d’un voyage, cela signifie que le tri est terminé.

<?php
function bubble3_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    $flag = true;
    $j = $count;
    while ($flag) {
        $flag = false;
        for ($i = 1; $i < $j; $i++) {
            if ($array[$i - 1] > $array[$i]) {
                $temp = $array[$i - 1];
                $array[$i - 1] = $array[$i];
                $array[$i] = $temp;
                $flag = true;
            }
        }
        $j--;
    }
    return $array;
}

Option 4 :

S'il existe un tableau de 100 nombres, seuls les 10 premiers ne sont pas ordonnés, et les 90 derniers sont triés et tous sont plus grands que Les 10 premiers nombres, puis après le premier parcours, la position d'échange finale doit être inférieure à 10, et les données après cette position doivent être dans l'ordre. Enregistrez cette position la deuxième fois que vous passez de la tête du tableau à. cet emplacement est très bien.

<?php

function bubble4_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    $flag = $count;
    while ($flag > 0) {
        $k = $flag;
        $flag = 0;
        for ($j = 1; $j < $k; $j++) {
            if ($array[$j - 1] > $array[$j]) {
                $temp = $array[$j - 1];
                $array[$j - 1] = $array[$j];
                $array[$j] = $temp;
                $flag = $j;
            }
        }
    }
    return $array;
}

Option 5 :

<?php

function bubble_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    for ($i = $count - 1; $i > 0; $i--) {
        $flag = false;
        for ($j = 0; $j < $count; $j++) {
            if ($array[$j] > $array[$j + 1]) {
                $temp = $array[$j];
                $array[$j] = $array[$j + 1];
                $array[$j + 1] = $temp;
                $flag = true;
            }
        }
        if (!$flag)
            break;
    }
    return $array;
}

Voici les différentes manières d'implémenter le tri des bulles en PHP. Il y en a cinq au total. comprenez le principe de l'un et des autres. Vous comprendrez les quatre sortes de nature ! J'ai besoin d'aide pour tous ceux qui apprennent PHP !

Articles connexes recommandés :

implémentation php du tri à bulles

tri rapide, tri par insertion :php implémente le tri à bulles, le tri par sélection, le tri par insertion et le tri rapide...


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:
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