Quicksort mit Interface Comparable

R

Ricket

Mitglied
Guten Abend,

erstmal vorweg, ich bin Java-Anfänger, der sich noch mit wahrscheinlich sehr leichten Sachen sehr schwer tut.
Die Aufgabe war, einen QuickSort- Algorithmus für Objekte vom Typ Comparable zu implementieren und diesen an einer vor einigen Wochen erstellten Klasse zu testen(als Interface) ((das ist mein Hauptproblem)).

Mein Lösung bisher:

QuickSort-Algorithmus:
Java:
import java.time.Clock;
import java.util.Arrays;

/*********************************************************
   hier bitte Antwort zu 1. und 2. als Block-Kommentar einfuegen
   
**********************************************************/

public class QuickSort {
   
    static int swap;
   
   
    public static <T extends Comparable<T>> void quickSort(T[] a) {
        // TODO: quicksort-algorithm for generics
        quickSort(a, 0, a.length-1);
    }
   
    private static <T extends Comparable<T>> void quickSort(T[]a, int left, int right) {
        if (right > left) {
            int pivot = partition(a,left,right);
            quickSort(a,left,pivot-1);
            quickSort(a,pivot+1,right);
        }
    }

    private static <T extends Comparable <T>> int partition(T[]a, int left,int right) {
        T pivot = a[right];
        int mid = left;
        for(int i=mid; i<right;i++) {
            if(a[i].compareTo(pivot)<=0) {
                swap(a,i,mid++);
            }
        }
        swap(a,right,mid);
        return mid;
    }
   
    private static <T extends Comparable <T>> void swap(T[] a,int b,int c) {
        if(b!=c) {
            T temp = a[b];
            a[b] = a[c];
            a[c] = temp;
        }
    }
        public static void main(String[] args) {
           
            Clock[] a = new Clock[20];
            a[0] = new Clock(0,0);
            for(int i=1;i<a.length;i++)
                a[i] = new Clock((int)(24*Math.random()),(int)(60*Math.random()));
            quickSort(a);
            System.out.println(Arrays.toString(a));
   
           
        }

}


und die zu verknüpfende Klasse:

Code:
public class Clock {
    int h; // Stunden (0-23)

    int min; // Minuten (0-59)

    int gmin; // gesamt-Minuten

    // in set-Methoden gmin aktualisieren!!

    public Clock() {
        h = 0;
        min = 0;
        gmin = 0;
    }

    public int getH() {
        return h;
    }

    public int getMin() {
        return min;
    }

    public Clock(int h, int min) {
        assert (0 <= h && h <= 23 && 0 <= min && min <= 59) : "unallowable time";
        this.h = h;
        this.min = min;
        gmin = h * 60 + min;
    }

    public Clock(int min) {
        h = (min / 60) % 24;
        this.min = min % 60;
        gmin = h * 60 + this.min;
    }

    public Clock(String z) {
        String[] el = z.split(":");
        h = Integer.parseInt(el[0]);
        min = Integer.parseInt(el[1]);
        gmin = h * 60 + min;
    }

    public Clock add(int m) {
        int res = gmin + m;
        return new Clock(res);
    }
        public Clock add(Clock t) {
        // Weiterverarbeiten des Ergebnisses möglich:
                // Clock t = t1.add(t2).add(t3)
        int res = gmin + t.gmin;
        return new Clock(res);
    }

    public String toString() {
        String erg = "";
        erg += h + ":";
        if (min < 10)
            erg += "0";
        erg += min;
        return erg;
    }


   
    public int compareTo(Clock t) {
        if(h>t.h) {
            return 1;
        }
        else if(h<t.h) {
            return -1;
        }
        else {
            return min - t.min;
        }
    }
}

Ich kriege in der main immer bei:
Code:
a[0] = new Clock(0,0);

a[i] = new Clock((int)(24*Math.random()),(int)(60*Math.random()));
den Fehler "cannot instantiate the Type Clock" und mir fällt nichts ein, wie ich den beheben soll/kann.
Wie Quick-Sort und der Algorithmus funktioniert ist mir klar, aber die Objektorientierte Programmierung und deren Zusammenhänge bringen mich sehr durcheinander.

Ich hoffe, es findet sich jemand der mir helfen kann bzw mich in die richtige Richtung bringt.


mit freundlichen Grüßen
 
R

Ricket

Mitglied
Danke für die schnelle Anworten :). Oh man, die Imports habe ich mir nicht angeguckt :oops:.

Dann habe ich noch einen Fehler bei:
Code:
quickSort(a);
in der main.
Fehler: "The method quickSort(T[]) in the type QuickSort is not applicable for the arguments (Clock[])"

Meinem Verständnis nach sollte es aber anwendbar sein. Kann mir da netterweise auch nochmal jemand auf die Sprünge helfen?
 
T

Traubeminze

Neues Mitglied
Korrekt von dir, dass du der einfinf Nachwelt die Lösung für dieses Problem vorenthältst 👍
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Quicksort in Verbindung mit einem Projekt Java Basics - Anfänger-Themen 1
M QuickSort und Liste Java Basics - Anfänger-Themen 6
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
G Quicksort Algorithmus Java Basics - Anfänger-Themen 12
Hanschyo Quicksort sortiert von groß nach klein Java Basics - Anfänger-Themen 3
L Quicksort verstehen Java Basics - Anfänger-Themen 3
M Quicksort Laufzeit langsam Java Basics - Anfänger-Themen 5
M Quicksort Laufzeit langsam Java Basics - Anfänger-Themen 0
J Quicksort mit Stack Java Basics - Anfänger-Themen 4
Liondary Quicksort Java Basics - Anfänger-Themen 20
K Quicksort Fehler in der Implementierung Java Basics - Anfänger-Themen 2
S Quicksort Algorithmus Java Basics - Anfänger-Themen 2
D Java Quicksort Java Basics - Anfänger-Themen 5
A Frage zu QuickSort Java Basics - Anfänger-Themen 9
B Quicksort mit Durchschnitt als Pivot Java Basics - Anfänger-Themen 1
K Quicksort Java Basics - Anfänger-Themen 3
M Quicksort - Probleme Java Basics - Anfänger-Themen 5
T QuickSort implementieren Java Basics - Anfänger-Themen 5
R QuickSort Verständis Problem (?) Java Basics - Anfänger-Themen 2
M Quicksort implementierung Java Basics - Anfänger-Themen 23
E Quicksort Java Basics - Anfänger-Themen 8
Xendarii Quicksort gibt kein Ergebnis aus Java Basics - Anfänger-Themen 13
E QuickSort: Ergebniss speichern Java Basics - Anfänger-Themen 2
P quickSort eines Objekt-Arrays geht nicht! Java Basics - Anfänger-Themen 11
F Stackoverflow bei Quicksort Java Basics - Anfänger-Themen 2
F Quicksort Java Basics - Anfänger-Themen 22
C Quicksort Invariante Java Basics - Anfänger-Themen 2
C QuickSort - Pivot in der Mitte Java Basics - Anfänger-Themen 5
P QuickSort iterativ Java Basics - Anfänger-Themen 5
K Eine Frage zum Quicksort Java Basics - Anfänger-Themen 11
B Quicksort --> Methodenaufruf Java Basics - Anfänger-Themen 10
B QuickSort - Fehler nicht zu finden Java Basics - Anfänger-Themen 2
W Quicksort Problem Java Basics - Anfänger-Themen 3
A Quicksort, #Vergleiche zählen klappt nicht Java Basics - Anfänger-Themen 3
J Quicksort Implementierung-- Exception ArrayOutOfBounds Java Basics - Anfänger-Themen 6
M Fehler in meinem Quicksort! Java Basics - Anfänger-Themen 21
B Quicksort Struktogramm Java Basics - Anfänger-Themen 9
G Frage zu Quicksort Java Basics - Anfänger-Themen 18
0 Quicksort bsp Java Basics - Anfänger-Themen 5
B Quicksort Problem Java Basics - Anfänger-Themen 6
S Mein Quicksort Problem: he method quickSort(int[], int, int) Java Basics - Anfänger-Themen 2
M Quicksort Java Basics - Anfänger-Themen 2
C Quicksort raten Java Basics - Anfänger-Themen 2
K ArrayList sortieren mit Quicksort Java Basics - Anfänger-Themen 3
M Quicksort Java Basics - Anfänger-Themen 4
J Quicksort programmieren Probleme Java Basics - Anfänger-Themen 9
S Quicksort Programm Java Basics - Anfänger-Themen 7
D Quicksort Java Basics - Anfänger-Themen 3
K Parameterübergabe bei quickSort Java Basics - Anfänger-Themen 6
S QuickSort will mir nicht in den Kopf (an einer Stelle) Java Basics - Anfänger-Themen 14
0 Quicksort Java Basics - Anfänger-Themen 2
M QuickSort Java Basics - Anfänger-Themen 4
J QuickSort - kurze Frage Java Basics - Anfänger-Themen 9
H Quicksort und Rekursiv: Türme von Hanoi Java Basics - Anfänger-Themen 9
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Anzeige

Neue Themen


Oben