Ein Young-Tableau ist eine m×n-Matrix (ti,j) mit Einträgen für die gilt, dass in jeder Zeile und jeder Spalte die Werte von links nach rechts bzw. von oben nach unten aufsteigen. Die Einträge mit Wert ∞ stehen dabei für leere Stellen.
Geben Sie einen Algorithmus an, der in Laufzeit O(n + m) einen neuen Eintrag in ein (nicht-volles) Young-Tableau einfügt, und beschreiben Sie seine Funktionsweise
#Meine Überlegung:
Jedoch komm ich auf eine Komplexität von O(n*m)... hat jemand vielleicht eine wie ich den Code umschreiben könnte um O(n+m) zu erreichen.
(Also mein Algorithmus würde jeden Eintrag der Zeile überprüfen und dann schauen ob der linke und der obere größer sind und würde dann den neuen Eintrag einsetzen.)
Geben Sie einen Algorithmus an, der in Laufzeit O(n + m) einen neuen Eintrag in ein (nicht-volles) Young-Tableau einfügt, und beschreiben Sie seine Funktionsweise
#Meine Überlegung:
Code:
x:= neuer Eintrag
for i to n do
for j to m do
if ti,j ungleich unendlich then
if x > ti-1,j und x> ti, j-1 then
ti,j = x
endif
endif
endfor
endfor
(Also mein Algorithmus würde jeden Eintrag der Zeile überprüfen und dann schauen ob der linke und der obere größer sind und würde dann den neuen Eintrag einsetzen.)