Heim > Backend-Entwicklung > PHP-Problem > PHP-Array-Lernen verwendet den Blasenalgorithmus, um Elemente in aufsteigender Reihenfolge zu sortieren!

PHP-Array-Lernen verwendet den Blasenalgorithmus, um Elemente in aufsteigender Reihenfolge zu sortieren!

青灯夜游
Freigeben: 2023-03-12 07:00:01
Original
3131 Leute haben es durchsucht

Im vorherigen Artikel „PHP-Array-Lernen: Rückgabe aller gemeinsamen Faktoren und des größten gemeinsamen Faktors zwischen zwei gegebenen Zahlen“ haben wir die Verwendung von Array-Methoden eingeführt, um die Summe aller gemeinsamen Faktoren zwischen zwei gegebenen ganzen Zahlen a und b zurückzugeben Common-Factor-Methode. Dieses Mal werden wir PHP-Arrays untersuchen und vorstellen, wie man mit PHP die Blasensortierung implementiert und wie man den Blasenalgorithmus verwendet, um Array-Elemente in aufsteigender Reihenfolge zu sortieren.

Lassen Sie uns zunächst verstehen, Was ist der Blasenalgorithmus (Blasensortierung)?

Blasensortierung (Bubble Sort) liegt daran, dass die kleineren Elemente durch Austausch langsam an die Spitze der Sequenz „schweben“ (in aufsteigender oder absteigender Reihenfolge angeordnet), genau wie die Kohlendioxidblasen in kohlensäurehaltigen Getränken schließlich an die Spitze der Sequenz „schweben“. oben, daher der Name „Blasensortierung“.

Idee:

  • Vergleichen Sie zwei benachbarte Elemente. Wenn die Bedingung erfüllt ist (das erste ist größer als das zweite oder das erste ist kleiner als das zweite), vertauschen Sie sie, sonst passiert nichts.

  • Vergleichen Sie dann die nächsten beiden benachbarten Elemente und tauschen Sie sie dann aus, wenn die Bedingungen erfüllt sind, andernfalls bleiben sie unverändert.

  • Machen Sie einfach dasselbe für jedes Paar benachbarter Elemente, vom ersten Paar am Anfang bis zum letzten Paar am Ende. Das letzte Element sollte die größte (kleinste) Zahl sein.

  • Setzen Sie den Schleifenvorgang der Reihe nach fort, und das letzte Element wird unten fixiert.

Wir verwenden den Blasenalgorithmus, um die Array-Elemente in aufsteigender Reihenfolge zu sortieren:

Es gibt ein solches Array:

$arr = array('23','4','0','3','2','24','20');
Nach dem Login kopieren

Das Array hat 7 Elemente, da eine aufsteigende Sortierung implementiert ist, also eine Sortierung von klein nach groß , also sind die Ausführungsschritte:

Die erste Runde der Schleife:

  • Das Verhältnis des ersten Elements 23 und des zweiten Elements 4, da 23 größer als 4 ist, wird also eine Austauschoperation ausgeführt

  • The zweites Element (zu diesem Zeitpunkt 23) und das dritte Element 0 vergleichen, da 23 größer als 0 ist, also eine Austauschoperation durchführen --- 23 wird zum dritten Element

  • Das dritte Element (zu diesem Zeitpunkt 23) und das Das vierte Element 3 ist immer noch größer als das andere. Führen Sie die Austauschoperation durch. 23 wird zum vierten Element. Das vierte Element (zu diesem Zeitpunkt 23) ist immer noch größer als das fünfte Element 2. Führen Sie die Austauschoperation aus. -23 wird zum fünften Element

  • Das Verhältnis des fünften Elements (zu diesem Zeitpunkt 23) zum sechsten Element beträgt 24, da 23 kleiner als 24 ist und daher keine Austauschoperation durchgeführt wird – das sechste Element ist immer noch 24

  • Das sechste Element (zu diesem Zeitpunkt ist 24) wird mit dem siebten Element 20 verglichen. Da 24 größer als 200 ist, führen Sie eine Austauschoperation durch --- 24 wird zum siebten Element.

  • Nach einer zyklischen Vergleichsrunde wird das Die größte Zahl sinkt zu Boden. Nach und nach tauchen kleine Zahlen auf.

  • Zu diesem Zeitpunkt sind die Array-Elemente: 4, 0, 3, 2, 23, 20, 24

Die zweite Runde der Schleife:

Das Verhältnis des ersten Elements 4 und des zweiten Elements 0, weil 4 ist größer als 0. Führen Sie daher die Austauschoperation aus --- 4 wird zum zweiten Element

  • Das zweite Element (das zu diesem Zeitpunkt 4 ist) wird mit dem dritten Element 3 verglichen, da 4 größer als 3 ist. Führen Sie also die Austauschoperation aus: 4 wird zum dritten Element. Das dritte Element (zu diesem Zeitpunkt 4) ist immer noch größer als das vierte Element. 2. Führen Sie eine Austauschoperation aus: 4 wird zum vierten Element

  • das vierte Das Verhältnis des Elements (zu diesem Zeitpunkt 4) und des fünften Elements beträgt 23, da 4 kleiner als 23 ist, sodass keine Austauschoperation durchgeführt wird --- das fünfte Element ist immer noch 23

  • Das fünfte Element (zu diesem Zeitpunkt 23) und das sechste Element Das Verhältnis des sechsten Elements (zu diesem Zeitpunkt 23) zum siebten Element beträgt 24, was weniger als 20 ist, daher wird kein Austausch durchgeführt – das siebte Element ist immer noch 24

  • Zu diesem Zeitpunkt sind die Array-Elemente: 0, 3, 2, 4, 20, 23, 24

    ...
  • Und so weiter ist das letzte Array-Element: 0, 2, 3, 4 , 20, 23, 24

    Werfen wir einen Blick auf die Implementierungsmethode:
  •  $arr[$j+1]) {
     
    				$data      = $arr[$i]; 
    				$arr[$i]   = $arr[$j+1];
    				$arr[$j+1] = $data; 
    			}
    		}
    	}
     
    	return $arr;
    }
    echo "
    ";
    print_r(BubbleSort($arr));
    Nach dem Login kopieren
  • Ausgabeergebnis:

  • Okay, das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →

    php-Video-Tutorial

    Abschließend empfehle ich ein kostenloses Video-Tutorial zu PHP-Arrays:

    PHP-Funktions-Array-Array-Funktions-Video-Erklärung

    , kommen Sie und lernen Sie!

    Das obige ist der detaillierte Inhalt vonPHP-Array-Lernen verwendet den Blasenalgorithmus, um Elemente in aufsteigender Reihenfolge zu sortieren!. 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