Witam. Zastanawia mnie jakiej struktury danych użyć, by w najefektywniejszy sposób móc przestawiać elementy jakiegoś zbioru. Np. mam ciąg znaków "GHIJ" i chcę sobie np. przestawić "I" na początek, dzięki czemu uzyskam "IGHJ". Do czegoś takiego najlepszym rozwiązaniem będzie lista dwukierunkowa czy może da się to wykonać jakoś lepiej?
- Rejestracja:prawie 16 lat
- Ostatnio:6 miesięcy
- Postów:2514
0
lista jest dobra do usuwania i przestawiania, aczkolwiek odległości między literami odczytasz tylko w czasie liniowym, próbuj dalej :P da się to zrobić w O(n log n) kombinując trochę, a jak nic nie wymyślisz to postaraj się zrobić jak najszybsze O(n^2)
edytowany 1x, ostatnio: krwq
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
1000: O(n<sup>2), n10</sup>5: O(n log n) n~10^9: O(log n) lub O(1)