Wątek przeniesiony 2015-02-19 15:05 z C/C++ przez msm.

Najdłuższy ciąg malejący

0

Dana jest na wejściu n-elementowa tablica T, w której elementy są posortowane nierosnąco. Podaj implementację efektywnego algorytmu działającego w czasie pesymistycznym Theta(n) wypisującego najdłuższy ciąg malejący, którego wyrazy są elementami tablicy T.

1

Aha, a jakie jest pytanie?

2

Zakładam że chodzi o substring (podsłowo) a nie subsequence (podciąg). Najdłuższego malejącego podciągu nie da się znaleźć w \Theta(n).

Żeby znaleźc długośc najdłuższego podsłowa musisz wykonać coś w rodzaju (pseudokod):

najdluzszy = 1
obecny = 1
pętla for po wszystkich elementach:
    jeśli obecny element jest większy od poprzedniego:
        obecny += 1
    w przeciwnym wypadku:
        obecny = 1
    najdluzszy = max(najdluzszy, obecny)    

Spróbuj wykonać modyfikację tego tak, żeby wynikiem było to podsłowo właśnie, a nie jego długość (podpowiedź - trzeba znać jego długość oraz miejsce gdzie się zaczyna)

1 użytkowników online, w tym zalogowanych: 0, gości: 1