Sortieren nach Vorgabe

Kavar

Mitglied
Hi,
die Aufgabe ist es etwas eingelesenes nach etwas anderem eingelesenen zu "sortieren". Ich habe beides eingelesen und in Arrays abgespeichert, da mir das recht sinnvoll vorkam.
Die Idee hinter dieser Aufgabe ist es natürlich eigentlich nicht zu sortieren (da man das Ergebnis ja kennt bzw. vorgibt) sondern die Unterschiede (Überholungen von Zahlen) von vorher zu nachher herauszufinden.

Als Grundidee:
Ich habe einen Mergesort (Iterativ weil ich hoffe diesen leichter manipulieren zu können) und hänge jetzt daran wie ich diesen Sortieralgorithmus so umschreiben kann, dass er nicht mehr auf-/absteigend Sortiert sondern eben dahin sortiert was ich ihm sage.

Über ein paar Tipps, Ideen wäre ich sehr dankbar.
Greetz,
Kavar
 
Nach einer willkürlichen Reihenfolge die auf jedenfall die gleichen und gleich viele Elemente hat...
Genau das ist ja mein Problem

€dit:
ein Beispiel:
Start: 1 3 4 2 5
Ziel: 5 3 4 2 1
 
Zuletzt bearbeitet:
Also du willst die zufällig verteilen?
Dann kannst du die Elemente zuerst in eine ArrayList speichern, dann die Elemente zufällig auswählen, einlesen, das Orginal löschen und in einer weiteren ArrayList speichern. Wenn das Ganze unbedingt als Array enden soll, kannst du noch die Methode toArray() der ArrayList benutzen.

Oder willst du einen Algorythmus vom User vorgeben lassen? Ich werd aus dir nicht schlau. 😀
 
Also ich versuche es einfach nochmal zu erklären.

Der Benutzer gibt ein Start und ein Ende vor. Die Idee ist es den Startarray zu dem Endarray hin zu sortieren...
Das Interessante für mich dabei ist natürlich nur die Anzahl an Schritten die dafür gebraucht werden...
Bzw mich interessiert wie viele Zahlen wie viele anderen "überholt" haben und das ist (denke ich zumindest bisher) der einzig effiziente Weg dahin.
 
Du kannst die einzelnen Zahlen mit Gewichten versehen und dann nach den Gewichten sortieren. Dazu kannst du dir einfach einen passenden Wrapper und Comparator schreiben.
 

Neue Themen


Zurück
Oben