PHP implementiert mehrere Lösungen für die Blasensortierung

韦小宝
Freigeben: 2023-03-20 11:56:02
Original
3682 Leute haben es durchsucht

In der tatsächlichen PHP-Entwicklung werden wir auf viele Sortierungen stoßen, und Blasensortierung ist auch eine der häufigsten. Wenn wir in der PHP-Entwicklung gute Arbeit leisten wollen, müssen wir sie problemlos verwenden PHP zur Implementierung der Blasensortierung. In diesem Artikel erfahren Sie mehr über die PHP-Blasensortierung! Werfen wir einen Blick auf die verschiedenen Möglichkeiten, die Blasensortierung in PHP zu implementieren!

Blasensortierung ist sehr einfach zu verstehen und umzusetzen:
Angenommen, die Länge des Arrays beträgt N.
1. Vergleichen Sie die beiden benachbarten Daten vorher und nachher. Wenn die ersteren Daten größer sind als die letzteren Daten, werden die beiden Daten ausgetauscht.
2. Auf diese Weise „sinken“ die größten Daten nach dem Durchlaufen der 0. Daten zu den N-1. Daten des Arrays zur N-1. Position des Arrays.
3. N = N-1, wenn N nicht 0 ist, wiederholen Sie die beiden vorherigen Schritte, andernfalls ist die Sortierung abgeschlossen.

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Option 3:

Setzt ein Flag, das „true“ ist, wenn auf dieser Reise ein Austausch stattgefunden hat, andernfalls „false“. Wenn bei einer Fahrt kein Umtausch erfolgt, bedeutet dies natürlich, dass die Sortierung abgeschlossen ist.

<?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;
}
Nach dem Login kopieren

Option 4:

Wenn es ein Array mit 100 Zahlen gibt, sind nur die ersten 10 ungeordnet und die letzten 90 sind sortiert und alle sind größer Als die ersten 10 Zahlen, muss die endgültige Austauschposition nach dem ersten Durchlauf kleiner als 10 sein, und die Daten nach dieser Position müssen in Ordnung sein. Zeichnen Sie diese Position beim zweiten Durchlauf einfach auf Die Lage ist einfach in Ordnung.

<?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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Die oben genannten sind die verschiedenen Möglichkeiten, die Blasensortierung in PHP zu implementieren. Tatsächlich gibt es fünf Verstehe das Prinzip der einen und der anderen. Du wirst die vier Arten der Natur verstehen! Ich brauche Hilfe für alle, die PHP lernen!

Empfohlene verwandte Artikel:

PHP-Implementierung der Blasensortierung

Schnellsortierung, Einfügungssortierung :php implementiert Blasensortierung, Auswahlsortierung, Einfügungssortierung und Schnellsortierung...


Das obige ist der detaillierte Inhalt vonPHP implementiert mehrere Lösungen für die Blasensortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage