Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert mehrere Lösungen für die Blasensortierung

PHP implementiert mehrere Lösungen für die Blasensortierung

韦小宝
韦小宝Original
2018-02-26 09:47:063677Durchsuche

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;
}

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:

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;
}

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;
}

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;
}

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!

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