Sortieren von Listen

Status
Nicht offen für weitere Antworten.

H26

Mitglied
hey zusammen,

ich möchte den MergeSort Algorithmus für Listen von Comparables implementieren..den Algorithmus habe ich mehr oder weniger begriffen, doch ich weiss nicht ganz was Listen von Coparables sind. kann mir jemand helfen, damit diesen Algorithmus programmieren kann?

mfg
 

HoaX

Top Contributor
Eben List<Comparable>, eine List (ArrayList, LinkedList, ...) die Objekte enthalten die das Interface Comparable implementieren.
 

eRaaaa

Top Contributor
naja, beim sortieren musst du die elemente ja vergleichen können, damit du das kannst, müssen die klassen das comparable interface implementieren.
 

H26

Mitglied
ah oke, die objekte der Arraylist müssen Objekte sein, die das Interface Comparable implementiert haben..
 
Zuletzt bearbeitet:

H26

Mitglied
ich habe die Klasse MergeSort darin will ich die zwei methoden merge und sort implementieren, wobei merge die rekursive hilfsmethode für die sort methode ist..ich weiss einfach nicht, wie mein konstruktor aussehen muss für mein oben geschildertes porblem..wäre dankbar, wenn mir jemand helfen könnte, damit ich mein programm fertigstellen kann...

Java:
public class MergeSort {
              //Konstruktor
              public MergeSort {
              
              }
              public static void sort (ArrayList<Comparable> list) {

              }

              public static int merge ( ) {

              }

}
 

Illuvatar

Top Contributor
Wie dein Konstruktor aussehen soll, kann ich dir nicht sagen, das musst du selber wissen. Wenn deine sort-Methode statisch ist, dann macht es allerdings keinen Sinn einen Konstruktor zu haben - ich würde ihn private machen. Die merge-Methode könnte/sollte übrigens vermutlich auch private sein.
In dem Fall kann ich dir aber einen Tip für die sort-Methode geben: damit da was draus wird, muss die Signatur so in der Art aussehen:
Java:
public static <T extends Comparable<T>> void sort (List<T> list)

Was ich vermute, dass es besser wäre: erstelle ein
Code:
interface Sorter<T extends Comparable<T>>
. Dieses interface hat Methoden wie sort, setData und getData. [c]class MergeSort<T extends Comparable<T>> implements Sorter<T>[/c] ist dann eine konkrete Implementierung dieses interfaces. Dann kannst du zum Beispiel den Konstruktor haben:
Java:
public MergeSort(List<T> data)
{
  this.data = data;
}
 

evil_kraudnsepp

Neues Mitglied
Ich hab eine Frage zum Thema Merge Sort. Ich bin Student an einer Fachhochschule. Bei einer Übungsaufgabe mussten wir Merge Sort implementieren. Die Musterlösung ist folgende:

Java:
	public static List mergeSort(List list, Comparator cmp) {
		if (list == null)
			return new ArrayList();
		if (list.size() <= 1)
			return list;
		
		List l1 = left(list); 				// linke Hälfte 
		l1 = mergeSort(l1, cmp);
		List l2 = right(list);                 // rechte Hälfte
		l2 = mergeSort(l2, cmp);
		List result = merge(l1, l2, cmp);  // sortierte Hälften mischen
		return result;
		
		// Lösung in einer Zeile
		// return merge(mergeSort(left(list),cmp),mergeSort(right(list),cmp),cmp);
	}

public static List merge(List liste1, List liste2, Comparator cmp) {

		int i1 = 0;
		int i2 = 0;

		List result = new ArrayList();

		while (i1 < liste1.size() && i2 < liste2.size()) {  // kleineren anfügen
			if (cmp.compare(liste1.get(i1), liste2.get(i2)) <= 0)
				result.add(liste1.get(i1++));
			else
				result.add(liste2.get(i2++));
		}
		// Rest anfügen
		while (i1 < liste1.size())
			result.add(liste1.get(i1++));

		while (i2 < liste2.size())
			result.add(liste2.get(i2++));

		return result;
	}

public static List left(final List list) {
		if (list == null || list.size()==0 )
			return list;
		return list.subList(0, list.size() / 2);
}

public static List right(final List list) {
		if (list == null || list.size()==0 )
			return list;
		return list.subList(list.size() / 2, list.size());
	}

Ich versteh nicht, wann der rekursive Aufruf von mergeSort wieder aufhört. Fehlt da nicht eine Abbruchbedingung?
 

Marco13

Top Contributor
Das sind doch
Code:
        if (list == null)
            return new ArrayList();
        if (list.size() <= 1)
            return list;
?! (Für sowas kann man IMHO auch einen neuen Thread aufmachen)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
G Listen sortieren Java Basics - Anfänger-Themen 3
T Listen sortieren Java Basics - Anfänger-Themen 4
M kompliziertes Problem mit Listen sortieren Java Basics - Anfänger-Themen 5
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
K Java sortieren. Java Basics - Anfänger-Themen 7
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Sortieren Java Basics - Anfänger-Themen 1
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
L Array sortieren Java Basics - Anfänger-Themen 4
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
B Liste sortieren? Java Basics - Anfänger-Themen 4
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
B Suchen und sortieren Java Basics - Anfänger-Themen 10
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
E ArrayList sortieren Java Basics - Anfänger-Themen 16
L Methode zum sortieren Java Basics - Anfänger-Themen 1
L Methode zum sortieren Java Basics - Anfänger-Themen 1
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
A Array sortieren Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
Tommy135 Erste Schritte JavaDoc Sortieren Java Basics - Anfänger-Themen 5
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
I <List> sortieren Java Basics - Anfänger-Themen 2
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
I Sortieren nach Priorität Java Basics - Anfänger-Themen 3
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
W Array sortieren Java Basics - Anfänger-Themen 3
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
S array sortieren Java Basics - Anfänger-Themen 7
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Methoden int-Array absteigend sortieren Java Basics - Anfänger-Themen 8
C Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
J Sortieren Java Basics - Anfänger-Themen 21
O Erste Schritte TreeMap nach Value sortieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben