algorithmen:algolektion03
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| algorithmen:algolektion03 [14.02.2011 16:13] – Frank Schiebel | algorithmen:algolektion03 [09.11.2014 15:47] (aktuell) – Stefan Gaum | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | [[algorithmen: | + | [[algorithmen: |
| - | ====== Sortieren ====== | + | ====== |
| - | Allen klassischen | + | Sortierverfahren sind von großer Bedeutung für die Informatik, siehe auch |
| + | http:// | ||
| + | |||
| + | Vielen | ||
| * zu Beginn liegt ein // | * zu Beginn liegt ein // | ||
| * beide Datenbereiche werden durch ein // | * beide Datenbereiche werden durch ein // | ||
| Zeile 27: | Zeile 30: | ||
| - | ===== Sortieren durch Auswahl (Selection Sort) ===== | + | ===== Sortieren durch Auswahl (Selectionsort) ===== |
| + | [[http:// | ||
| Beim Sortieren durch Auswahl wird das kleinste Element des unsortierten Bereichs gesucht, ausgewählt und schließlich mit dem Grenzelement vertauscht. Die Grenze wird anschließend um einen Schritt weitergeschoben, | Beim Sortieren durch Auswahl wird das kleinste Element des unsortierten Bereichs gesucht, ausgewählt und schließlich mit dem Grenzelement vertauscht. Die Grenze wird anschließend um einen Schritt weitergeschoben, | ||
| Zeile 39: | Zeile 43: | ||
| Im nachstehenden Struktogramm wird eine variable Anzahl von Elementen sortiert. Die Variablen **// | Im nachstehenden Struktogramm wird eine variable Anzahl von Elementen sortiert. Die Variablen **// | ||
| - | {{: | + | {{: |
| + | [[http:// | ||
| ===== Aufgaben ===== | ===== Aufgaben ===== | ||
| Zeile 47: | Zeile 52: | ||
| - Sortiere die Zahlen 7, 5, 3, 8, 4, 6, 1, 2, 9 auf einem Blatt Papier nach dem Auswahlverfahren. | - Sortiere die Zahlen 7, 5, 3, 8, 4, 6, 1, 2, 9 auf einem Blatt Papier nach dem Auswahlverfahren. | ||
| - | - Setze den Algorithmus aus dem Struktogramm | + | - Folge dem Struktogramm |
| - | - Teste dein Programm, indem du ein Formular erstellst, welches als Eingabe eine durch Leerzeichen getrennte Liste von Zahlen entgegen nimmt und diese anschließend einmal // | + | |
| + | - Wie viele Elemente sind größer bzw. kleiner als der Mittelwert? | ||
| - | ---- | + | [[algorithmen: |
| - | Zusatzaufgaben: | ||
| - | |||
| - | * Gib den Mittelwert der Listenelemente aus. | ||
| - | * Wie viele Elemente sind größer bzw. kleiner als der Mittelwert? | ||
| - | |||
| - | ---- | ||
| - | |||
| - | * Erstelle einen Array $numbers mit den Elementen " | ||
| - | * Schreibe ein php-Programm, | ||
| - | |||
| - | |||
| - | ---- | ||
| - | |||
| - | für ganz Schnelle: | ||
| - | |||
| - | * Finde heraus, welche Laufzeit dein Sortier-Algorithmus für 5, 10, 20, 30, ..., 200, ... Elemente hat und formuliere eine Aussage über die Abhängigkeit der Laufzeit von der Anzahl der Listenelemente. | ||
| - | |||
| - | ===== Lösungsvorschlag ===== | ||
| - | |||
| - | <code php> | ||
| - | <form action=" | ||
| - | <input type=" | ||
| - | <input type=" | ||
| - | </ | ||
| - | | ||
| - | <?php | ||
| - | $jetzt = microtime(); | ||
| - | print $jetzt; | ||
| - | $zahlen = $_POST[' | ||
| - | $einzelzahlen = explode(" | ||
| - | $anzahl = count($einzelzahlen); | ||
| - | | ||
| - | //echo $anzahl; | ||
| - | // | ||
| - | | ||
| - | // Alle " | ||
| - | $dieguten = array(); | ||
| - | for( $i=0; $i< | ||
| - | if( is_numeric($einzelzahlen[$i])){ | ||
| - | print "Index $i: $einzelzahlen[$i] ist Zahl<br />"; | ||
| - | | ||
| - | } | ||
| - | } | ||
| - | | ||
| - | print_r($dieguten); | ||
| - | | ||
| - | $anzahl = count($dieguten); | ||
| - | $grenze = 0; | ||
| - | | ||
| - | while($grenze < $anzahl) { | ||
| - | // kleinstes Element suchen | ||
| - | $index_min = $grenze; | ||
| - | for( $i = $grenze; $i< | ||
| - | if ($dieguten[$i] < $dieguten[$index_min]) { | ||
| - | $index_min = $i; | ||
| - | } | ||
| - | } | ||
| - | // $dieguten[$index_min] ist das kleinste Element# | ||
| - | // vertausche $dieguten[$grenze] mit $dieguten[$index_min] | ||
| - | $zwischen = $dieguten[$grenze]; | ||
| - | $dieguten[$grenze] = $dieguten[$index_min]; | ||
| - | $dieguten[$index_min] = $zwischen; | ||
| - | // Grenze eins nach rechts | ||
| - | $grenze++; | ||
| - | } | ||
| - | $zeit = microtime() - $jetzt; | ||
| - | |||
| - | print_r($dieguten); | ||
| | | ||
| - | print " | + | [[algorithmen: |
| - | ?> | + | |
| - | </ | + | |
| - | [[algorithmen: | + | |
algorithmen/algolektion03.1297699985.txt.gz · Zuletzt geändert: 14.02.2011 16:13 von Frank Schiebel
