Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:sortieren:start [20.02.2020 16:23] – [Wann ist ein Array sortiert?] sbel | faecher:informatik:oberstufe:algorithmen:sortieren:start [24.01.2022 23:09] – [Wann ist ein Array sortiert?] sbel | ||
---|---|---|---|
Zeile 111: | Zeile 111: | ||
zahlen[4]=15 | zahlen[4]=15 | ||
- | Die Werte sind nun aufsteigend sortiert, die Reihenfolge noch immer durch den Index gegeben. | + | Die Werte sind nun aufsteigend sortiert, die Reihenfolge noch immer durch den Index gegeben. Analog kann man bei Java mit ArrayLists verfahren. |
===== Wann ist ein Array sortiert? ===== | ===== Wann ist ein Array sortiert? ===== | ||
- | |||
- | Um einzusehen, welche Bedingungen ein Array erfüllen muss, damit es sortiert ist, hilft uns die Geschichte von Willi und seinen Mistkugeln weiter: Nachdem er viele Kugelpaare vertauscht hat, bei denen die linke Kugel grösser war als die rechte, fand er irgendwann kein solches " | ||
- | Warum funktioniert das eigentlich? Jede Vertauschung bringt eine grössere Kugel | + | **Ein Array ist sortiert, wenn es keine zwei Elemente mit falscher Reihenfolge gibt.** |
- | ein Stück nach rechts und eine kleinere Kugel ein Stück nach links. Auf diese Weise | + | |
- | trägt jede Vertauschung ein kleines Stück zur Sortierung bei. Jede Vertauschung macht also | + | |
- | die Sortierung ein bisschen besser. Die Sortierung ist perfekt, wenn es keine falschen Paare mehr gibt. | + | |
- | + | ||
- | **Ein Array ist also sortiert, wenn es keine zwei Elemente mit falscher | + | |
- | Reihenfolge gibt.** | + | |
Es ist leicht einzusehen, dass auch die folgende Aussage richtig ist: **Ein Array ist sortiert, wenn es keine zwei benachbarten Elemente mit falscher Reihenfolge gibt.** | Es ist leicht einzusehen, dass auch die folgende Aussage richtig ist: **Ein Array ist sortiert, wenn es keine zwei benachbarten Elemente mit falscher Reihenfolge gibt.** | ||
- | ++++ Klicken, um den Quellcode zu sehen | | ||
- | <code java App.java> | ||
- | /** | ||
- | * Erzeugt eine Zufallsreihe und ermöglicht Abfragen darüber. | ||
- | | ||
- | * @author Rainer Helfrich | ||
- | * @author Frank Schiebel | ||
- | * @version 1.0 | ||
- | */ | ||
- | class Zufallsreihe | ||
- | { | ||
- | private int[] daten; | ||
- | int anzahl; | ||
- | | ||
- | public Zufallsreihe(int anzahl) | ||
- | { | ||
- | this.anzahl = anzahl; | ||
- | daten = new int[anzahl]; | ||
- | for (int i = 0; i < daten.length; | ||
- | { | ||
- | // Für manche Aufgaben sollte man die 6 durch z.B. 1000 ersetzen | ||
- | daten[i] = getZufallszahl(6); | ||
- | } | ||
- | } | ||
- | | ||
- | public int aufgabe01Summe() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public int aufgabe02ZaehleNullen() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public int aufgabe03FindeLetzteNull() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public int aufgabe04FindeErsteNull() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public boolean aufgabe05Enthaelt1() | ||
- | { | ||
- | return false; | ||
- | } | ||
- | | ||
- | public boolean aufgabe06Enthaelt2Und5() | ||
- | { | ||
- | return false; | ||
- | } | ||
- | | ||
- | public boolean aufgabe07EnthaeltFixpunkt() | ||
- | { | ||
- | return false; | ||
- | } | ||
- | | ||
- | public int aufgabe08ZaehleWiederholungen() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public int aufgabe09ZaehleDreierWiederholungen() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public int aufgabe10LaengsteSerie() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public int aufgabe11Zweitgroesste() | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | | ||
- | public void aufgabe12Plus1() | ||
- | { | ||
- | | ||
- | } | ||
- | | ||
- | public void aufgabe13NullZuHundert() | ||
- | { | ||
- | | ||
- | } | ||
- | | ||
- | public void aufgabe14Rotation() | ||
- | { | ||
- | | ||
- | } | ||
- | | ||
- | public void aufgabe15Umdrehen() | ||
- | { | ||
- | | ||
- | } | ||
- | + | ====== Musik-Liste ====== | |
- | /** dient zum Anzeigen der Reihung am Bildschirm; | + | |
- | * kann durch INSPECT ersetzt werden */ | + | |
- | public void anzeigen() { | + | |
- | for (int i=0; i< anzahl; i++) { | + | |
- | | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | /** | + | |
- | * Gibt eine Zufallszahl zwischen 0 und grenze-1 zurück. | + | |
- | */ | + | |
- | private int getZufallszahl(int grenze) | + | |
- | { | + | |
- | return (int)(grenze*Math.random()+1); | + | |
- | } | + | |
- | + | ||
- | } | + | |
+ | Arbeite mit dem folgenden BlueJ Projekt: https:// | ||
- | /* App Klasse. Steuerklasse für unser Programm | + | Das Projekt implementiert eine ArrayList mit Musiktiteln, |
- | public class App { | + | |
- | + | ||
- | public static void main(String[] args) { | + | |
- | Zufallsreihe reihe1 = new Zufallsreihe(100); | + | |
- | reihe1.anzeigen(); | + | |
- | } | + | |
- | + | ||
- | } | + | |
- | + | ||
- | + | ||
- | </ | + | |
- | + | ||
- | ++++ | + | |
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | ||
{{ .: | {{ .: | ||
- | + | | |
- | + | ||
- | | + | |
- | * Teste das Programm mit unterschiedlichen Zahlenreihen | + | |
- | * Bearbeite den Quelltext. Du findest 3 Aufgaben im Quelltext. Beantworte die Fragen schriftlich in der Datei. | + | |
</ | </ | ||
- | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | ||
- | {{ .: | ||
- | |||
- | |||
- | * Speichere die Datei {{sortiert_test.zip|sortiert_test.php}}((Zip-Datei auspacken!)) auf deinem Webspace. | ||
- | * Teste das Programm mit unterschiedlichen Zahlenreihen und beobachte, was es macht | ||
- | * Bearbeite den Quelltext. Du findest 3 Aufgaben im Quelltext. Beantworte die Fragen soweit möglich schriftlich in der Datei. | ||
- | </ | ||
Weiter zu [[BubbleSort]] | Weiter zu [[BubbleSort]] |