Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Bubblesort in PHP

Sie befinden sich: Home > Php Tutorial > Bubblesort in PHP

Bubblesort in PHP


Eintrag am:  31.10.2011
Hits / Besucher:  28673
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von    schubertmedia
 
Beschreibung

In diesem Tutorial erkläre ich euch, wie man einen sogenannten „Bubblesort“ in PHP mit einem Array realisiert. Der Bubblesort ist eine Sortier-Funktion, welche Schritt für Schritt die Elemente überprüft und von kleiner nach größer sortiert. Man nennt dies auch in der Fachsprache auf Deutsch „Blasensortierung“.  Der Prozess wird auch als „Aufsteigendes Blasen“ bezeichnet, da die größeren Elemente an die Oberfläche steigen und kleinere Elemente nach unten sinken.

Beispiele, wo ein Bubblesort verwendet wird: 

  • Beim Sortieren einer Liste von Anzeigen in einer Online-Kleinanzeige.
  • Beim Sortieren von Einträgen in einem Adressbuch.
  • Sortieren von Ergebnissen in einer absteigenden Reihenfolge nach Punktzahl bei einem Spiel.
  • Beim Sortieren einer Liste von Namen, alphabetisch.

Um den Bubblesort zu realisieren, verwende ich eine PHP Funktion, die Array-Elemente mit zwei For-Schleifen durchläuft. In diesen Schleifen prüfe ich mit einer IF Anweisung, ob das Element größer ist als das vorhergehende.

Nachfolgend das Beispiel:

<?php

/**
* @author Nico Schubert
* @copyright Copyright &copy; 2011, Nico Schubert
*/
function bubblesort($bubblesort_array = array ()) {
$anz = count($bubblesort_array);
$temp='';
for ($a = 0; $a < $anz; $a++) {
for ($b = 0; $b < $anz -1; $b++) {
if ($bubblesort_array[$b +1] < $bubblesort_array[$b]) {
$temp = $bubblesort_array[$b];
$bubblesort_array[$b] = $bubblesort_array[$b +1];
$bubblesort_array[$b +1] = $temp;
}
}
}
return $bubblesort_array;
}
$bubblesort_array[]='14';
$bubblesort_array[]='8';
$bubblesort_array[]='12';
$bubblesort_array[]='1';

echo 'Ausgabe des unsortierten Array:';
echo '<pre>';
print_r($bubblesort_array);
echo '</pre>';

echo 'Ausgabe des sortierten Array:';
echo '<pre>';
print_r(bubblesort($bubblesort_array));
echo '</pre>';
?>

Die Ausgabe würde folgendermaßen aussehen:

Ausgabe mit print_r(), des unsortierten Array:

Array ( [0] => 14 [1] => 8 [2] => 12 [3] => 1 ) 

Ausgabe des sortierten Array:

Array ( [0] => 1 [1] => 8 [2] => 12 [3] => 14 ) 

Erklärung:

Die Funktion bubblesort() nimmt ein Array als Parameter entgegen und sortiert es anschließend mittels des Bubblesort-Algorithmus. Der Algorithmus verteilt sich auf zwei verschachtelte Schleifen. 

In der ersten Schleife wird die Anzahl der Elemente im Array bestimmt und in die Variable $anz gespeichert. Die Variable $temp dient als temporäre Variable, um das Element zu speichern, das zwischen zwei Array-Elementen getauscht wird. In der zweiten Schleife wird über jedes Element des Arrays iteriert und mit dem jeweils nächsten Element verglichen. Ist das nächste Element kleiner als das vorherige, werden beide miteinander vertauscht. Dieser Vorgang wird so lange wiederholt, bis alle Elemente des Arrays in der richtigen Reihenfolge liegen. 

Im Anschluss wird das sortierte Array zurückgegeben und in der Variablen $bubblesort_array gespeichert.

Ich empfehle euch auch noch alternativ den Beitrag zur: „Sortierung von Arrays“ euch anzusehen. Dort werden noch andere Möglichkeiten vorgestellt.  Solltet ihr noch die ein oder andere Frage haben, so meldet euch einfach im Forum.

 

Tags:

 

Artikel hinzufügen bei: