Entwickeln Sie ein Programm, das folgende Aufgaben realisiert:
1. Erzeugen der unsortierten Menge mit wählbar n ganzzahligen Elementen
(n > 1000) durch wahlweises
• Eingeben mit Tastatur
oder
• Generieren von nichtnegativen Pseudozufallszahlen mit wählbarem
Größtwert
2. wahlweise, lesbare (Kontroll-)Ausgabe der gesamten Zahlenmenge
3. Sortieren der n Zahlen wahlweise aufsteigend und abfallend mit Selectsort
(Sortieren durch Auswahl); für eine zur Kontrolle des Verfahrens sinnvoll
große Zahlenmenge soll die zeilenweise Ausgabe nach jedem Sortierschritt
optional möglich sein
4. Überprüfen der sortierten Menge auf korrekte Sortierung mit einer Methode.
Erweitern Sie Ihre Lösung um Methoden für:
1. wahlweises Einlesen einer Zahlenmenge von einer wählbaren Datei und
wahlweises Ausgeben einer Zahlenmenge in eine wählbare Datei,
2. Sortieren von n Zahlen wahlweise aufsteigend und abfallend mit Quicksort
(Sortieren durch Partitionieren); zur Kontrolle des Verfahrens soll die
zeilenweise Ausgabe der gesamten, sinnvoll großen Zahlenmenge nach
jedem Sortierschritt optional möglich sein
So hab dies als Praktikumsaufgabe gestellt bekommen und noch nicht wirklich Ideen wie ich die angehen soll. Bin zur Zeit noch auf der Suche nach der richtigen Idee für eine möglichst einfache Umsetzung.
Meine bisherigen Ideen:
Zu 1) nichtnegative Pseudozufallszahl. -> java.util Klasse Random sollte das können.
Zu 2)
Nun gut ich muss also die unsortierte Menge ausgeben. Werde so in einem Array vorliegen haben und dementsprechend nur das Array mit Laufparameter ausgeben.
Zu 3)
Selection Sort ist so wie wir es in der Vorlesung gelernt haben instabil. Laut Wiki gibt es davon allerdings auch eine stabile Variante. Dazu hab ich allerdings keine Idee wodurch sich diese auszeichnen muss. Abfallend würde ich mit dem gleichen Sortieralgorithmus machen und ei8nfach umgekehrt ausgeben. Oder ist es vllt besser die Methode dafür anzupassen?
Zu 4)
Hier hab ich schlichtweg keine Idee. Ich soll also überprüfen ob die sortierte Menge richtig sortiert wurde. Dazu würde ich entweder andere Sortierverfahren wählen und eventuell die Anzahl der Vertauschungen oder Ähnliches zählen und damit auf die richtige Sortierung folgern. Andere Idee wäre jeweils die zweite Zahl von der ersten Zahl abzuziehen und dann auf <0 zu überprüfen. Wiederum keine Ahnung was sich besser realisieren lässt.
Danke für etwaige Hilfe.
Gruß Kranker