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:08] – 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. | ||
- | |||
- | |||
- | <form action=" | ||
- | <input type=" | ||
- | <input type=" | ||
- | </ | ||
| | ||
- | <?php | + | [[algorithmen: |
- | $jetzt = time(); | + | |
- | 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 = time() - $jetzt; | + | |
- | + | ||
- | print_r($dieguten); | + | |
- | + | ||
- | print " | + | |
- | ?> | + | |
- | + | ||
- | [[algorithmen: | + |
algorithmen/algolektion03.1297699721.txt.gz · Zuletzt geändert: 14.02.2011 16:08 von Frank Schiebel