Javakurs/Übungsaufgaben/SelectionSort: Unterschied zwischen den Versionen
(Aufgepimpt ;-)) |
Jörg F (Diskussion | Beiträge) K (hat „Javakurs2007/SelectionSort“ nach „Javakurs/Übungsaufgaben/SelectionSort“ verschoben) |
||
(4 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=== Aufgabenstellung === | === Aufgabenstellung === | ||
− | Ziel dieser Aufgabe ist es, Werte in einem unsorierten Array zu sortieren. Das heißt euer Programm bekommt ein Array | + | Ziel dieser Aufgabe ist es, Werte in einem unsorierten Array zu sortieren. Das heißt, euer Programm bekommt ein Array zum Beipiel von ganzen Zahlen (int). Das könnte so aussehen: |
int[] list = {5, 8, 3, 6, 8, 9, 4, 2}; | int[] list = {5, 8, 3, 6, 8, 9, 4, 2}; | ||
=== Algorithmus === | === Algorithmus === | ||
− | + | Bei Wikipedia findet ihr Erklärungen zu der [[wikipedia:SelectionSort#Prinzip|Funktionsweise von Selection-Sort]] und dort gibt es auch ein [[wikipedia:SelectionSort#Beispiel|Beispiel, welches das Vorgehen des Algorithmus' visualisiert]]. | |
− | Falls ihr Fragen haben solltet, fragt euren Tutor, da es keinen Sinn macht, | + | Falls ihr Fragen haben solltet, fragt euren Tutor, da es keinen Sinn macht, mit Programmieren anzufangen, wenn ihr den Algorithmus noch nicht verstanden habt. |
Zeile 14: | Zeile 14: | ||
* Ihr werdet eine Methode brauchen, die zwei Werte in dem Array tauscht, diese könnte so aussehen: | * Ihr werdet eine Methode brauchen, die zwei Werte in dem Array tauscht, diese könnte so aussehen: | ||
− | public static void '''swap'''(int[] '''array''', int '''position1''', int ''' | + | public static void '''swap'''(int[] '''array''', int '''position1''', int '''position2''') { |
[...] | [...] | ||
Zeile 20: | Zeile 20: | ||
} | } | ||
− | Diese Methode soll das Array so ändern, | + | Diese Methode soll das Array so ändern, dass der Wert, der an '''position1''' stand, dann an '''position2''' steht, und andersrum. |
− | * Eine weitere Methode die ihr braucht ermittelt die Position des kleinesten Wertes in einem Teilarray. | + | * Eine weitere Methode, die ihr braucht, ermittelt die Position des kleinesten Wertes in einem Teilarray. |
public static int findMinimum(int[] array, int startIndex, int endIndex) { | public static int findMinimum(int[] array, int startIndex, int endIndex) { | ||
Zeile 29: | Zeile 29: | ||
} | } | ||
− | '''startIndex''' und '''stopIndex''' sind die Positionen an dem der zu untersuchende Teilbereich des | + | '''startIndex''' und '''stopIndex''' sind die Positionen, an dem der zu untersuchende Teilbereich des Arrays anfängt, bzw aufhört. Diese Angaben sind nötig, da ihr später den kleinsten Wert nur in eurem unsortierten Teil des Arrays finden wollt. |
− | * Um besser | + | * Um besser testen zu können, eignet sich eine Methode, die überprüft, ob ein Array sortiert ist oder nicht. |
public static boolean '''isSorted'''(int[] '''array''') { | public static boolean '''isSorted'''(int[] '''array''') { | ||
[...] | [...] | ||
Zeile 39: | Zeile 39: | ||
* Auch eine Methode, die euer Array auf der Konsole ausgibt, sollte nicht fehlen, so könnt ihr am besten Schritt für Schritt überprüfen, ob euer Code richtig arbeitet oder nicht. | * Auch eine Methode, die euer Array auf der Konsole ausgibt, sollte nicht fehlen, so könnt ihr am besten Schritt für Schritt überprüfen, ob euer Code richtig arbeitet oder nicht. | ||
− | * Versucht dabei gleich passende Namen zu verwenden und auch Kommentare nicht zu vergessen. Solltet ihr zu zweit an einem Rechner sitzen, sollte die Person, die gerade nicht tippt, den Tippenden auf Fehler und Ungenauigkeiten hinweisen. So kontrolliert ihr euch gegenseitig und euer Code wird besser. Vergesst nicht euch in regelmäßigen Abständen mit dem Tippen abzuwechseln. | + | * Versucht dabei gleich passende Namen zu verwenden und auch Kommentare nicht zu vergessen. Solltet ihr zu zweit an einem Rechner sitzen, dann sollte die Person, die gerade nicht tippt, den Tippenden auf Fehler und Ungenauigkeiten hinweisen. So kontrolliert ihr euch gegenseitig und euer Code wird besser. Vergesst nicht, euch in regelmäßigen Abständen mit dem Tippen abzuwechseln. |
− | Schließlich überlegt euch wie ihr eure Methoden am besten testet. Führt z.B. gegenseitige Tests. Konntet ihr Fehler finden? --- beheben? | + | Schließlich überlegt euch, wie ihr eure Methoden am besten testet. Führt z.B. gegenseitige Tests durch. Konntet ihr Fehler finden? --- beheben? |
+ | |||
+ | == Kommentare == | ||
+ | Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;) | ||
+ | |||
+ | <!-- | ||
+ | Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern. | ||
+ | Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;) | ||
+ | |||
+ | ==== Robert ==== | ||
+ | Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll. | ||
+ | --> | ||
+ | |||
+ | [[Kategorie:Java]] | ||
+ | [[Kategorie:Java_Aufgaben]] |
Aktuelle Version vom 1. August 2010, 12:04 Uhr
Inhaltsverzeichnis
Aufgabenstellung
Ziel dieser Aufgabe ist es, Werte in einem unsorierten Array zu sortieren. Das heißt, euer Programm bekommt ein Array zum Beipiel von ganzen Zahlen (int). Das könnte so aussehen:
int[] list = {5, 8, 3, 6, 8, 9, 4, 2};
Algorithmus
Bei Wikipedia findet ihr Erklärungen zu der Funktionsweise von Selection-Sort und dort gibt es auch ein Beispiel, welches das Vorgehen des Algorithmus' visualisiert. Falls ihr Fragen haben solltet, fragt euren Tutor, da es keinen Sinn macht, mit Programmieren anzufangen, wenn ihr den Algorithmus noch nicht verstanden habt.
Tipps
- Ihr werdet eine Methode brauchen, die zwei Werte in dem Array tauscht, diese könnte so aussehen:
public static void swap(int[] array, int position1, int position2) { [...] }
Diese Methode soll das Array so ändern, dass der Wert, der an position1 stand, dann an position2 steht, und andersrum.
- Eine weitere Methode, die ihr braucht, ermittelt die Position des kleinesten Wertes in einem Teilarray.
public static int findMinimum(int[] array, int startIndex, int endIndex) { [...] }
startIndex und stopIndex sind die Positionen, an dem der zu untersuchende Teilbereich des Arrays anfängt, bzw aufhört. Diese Angaben sind nötig, da ihr später den kleinsten Wert nur in eurem unsortierten Teil des Arrays finden wollt.
- Um besser testen zu können, eignet sich eine Methode, die überprüft, ob ein Array sortiert ist oder nicht.
public static boolean isSorted(int[] array) { [...] }
- Auch eine Methode, die euer Array auf der Konsole ausgibt, sollte nicht fehlen, so könnt ihr am besten Schritt für Schritt überprüfen, ob euer Code richtig arbeitet oder nicht.
- Versucht dabei gleich passende Namen zu verwenden und auch Kommentare nicht zu vergessen. Solltet ihr zu zweit an einem Rechner sitzen, dann sollte die Person, die gerade nicht tippt, den Tippenden auf Fehler und Ungenauigkeiten hinweisen. So kontrolliert ihr euch gegenseitig und euer Code wird besser. Vergesst nicht, euch in regelmäßigen Abständen mit dem Tippen abzuwechseln.
Schließlich überlegt euch, wie ihr eure Methoden am besten testet. Führt z.B. gegenseitige Tests durch. Konntet ihr Fehler finden? --- beheben?
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)