Hallo zusammen, hättet ihr einen Ansatz zu der folgenden Aufgabe:
Für die Zwecke dieser Aufgabe ist der Median einer Menge S von n verschiedenen Schlüsseln definiert als der [n/2]-kleinste Schlüssel in S.
Also der Median von {8,6,9} ist 8. Außerdem können Sie davon ausgehen, dass alle vorkommenden Schlüssel verschieden sind.
Eine Median-Queue verwaltet eine endliche Menge S von Schlüsseln unter folgenden Operationen:
ISEmpty (IS), Insert (k,s) Median (s) und DeleteMedian (s). Diese Operationen haben die offensichtlichen Bedeutungen.
Die beiden letzten sind nur anwendbar, wenn S nicht leer ist. Median (S) gibt nur einen Wert zurück, wohingegen DeleteMedian (s) die Menge S verändert.
1. Entwerfen Sie eine Datenstruktur, die so eine Median-Queue realisiert. Welche Laufzeiten können Sie für die Operationen erzielen? (Je kleiner, desto besser!).
Gelten die Laufzeiten worst-case, erwartet oder amortisiert?
2. Wie würden Sie in Ihrer Datenstruktur DecreaseKey und IncreaseKey Operationen realisieren und welche Laufzeiten können Sie dafür erzielen?
Ich stehe hier extrem auf dem Schlauch und wäre sehr dankbar für jede Hilfe da diese Aufgabe mal eine Klausuraufgabe war! Danke schonmal!
Für die Zwecke dieser Aufgabe ist der Median einer Menge S von n verschiedenen Schlüsseln definiert als der [n/2]-kleinste Schlüssel in S.
Also der Median von {8,6,9} ist 8. Außerdem können Sie davon ausgehen, dass alle vorkommenden Schlüssel verschieden sind.
Eine Median-Queue verwaltet eine endliche Menge S von Schlüsseln unter folgenden Operationen:
ISEmpty (IS), Insert (k,s) Median (s) und DeleteMedian (s). Diese Operationen haben die offensichtlichen Bedeutungen.
Die beiden letzten sind nur anwendbar, wenn S nicht leer ist. Median (S) gibt nur einen Wert zurück, wohingegen DeleteMedian (s) die Menge S verändert.
1. Entwerfen Sie eine Datenstruktur, die so eine Median-Queue realisiert. Welche Laufzeiten können Sie für die Operationen erzielen? (Je kleiner, desto besser!).
Gelten die Laufzeiten worst-case, erwartet oder amortisiert?
2. Wie würden Sie in Ihrer Datenstruktur DecreaseKey und IncreaseKey Operationen realisieren und welche Laufzeiten können Sie dafür erzielen?
Ich stehe hier extrem auf dem Schlauch und wäre sehr dankbar für jede Hilfe da diese Aufgabe mal eine Klausuraufgabe war! Danke schonmal!