Złożoność obliczeniowa

0

Witam,
Czy mógłby ktoś sprawdzić złożoność obliczeniową operacji przedstawionych na poniższej tabelce ?

14188209_1221714231213329_196802123898013269_o.jpg

2

Za mało informacji. Co to np. znaczy "wstaw"? Na końcu? Na początku? Zgodnie z porządkiem? Bo na przykład wstawienie na koniec tablicy to może być O(1) jesli można alokować miejsce na końcu/tablica ma dość miejsca. Wstawienie do listy jednokierunkowej na koniec może kosztować O(n) jeśli nie trzymamy wskaźnika zarówno na początek jak i na koniec, tak samo dla listy dwukierunkowej.
Co to jest "usuń"? Razem z wyszukiwaniem elementu do usuwania? Bo wtedy lista jedno i dwukierunkowa wymaga raczej O(n).
Modyfikuj, czyli jak rozumiem po prostu "znajdź element"? Uporządkowana tablica to O(logn) bo mozesz szukać połówkowo, za to listy to już znów O(n).

0

Przy usuwaniu, modyfikacji i nastepniku zakladamy ze znamy pozycje odpowiedniego klucza (mamy wskaznik na dany wezel, ktory zawiera klucz).
Tablica przechowuje elementy w pierwszych n komorkach i jest dostatecznie duza (nie trzeba zmieniac jej rozmiaru). Chodzi o zlozonosci pesymistyczne

0

To dlaczego wstawienie do tablicy masz O(n)?

0

Właśnie dlatego, że nie jestem pewien informacji w tabelce zgłaszam się o prośbę w sprawdzeniu jej :)

0

Ale tabelka nie ma sensu bez wiedzy o tym jak zaimplementowane są poszczególne operacje. Nie istnieje coś takiego jak złożoność obliczeniowa dla "problemu" a jedynie dla algorytmu który dany problem rozwiązuje. Mozemy mówić ewentualnie o pesymistycznej złożoności obliczenowej dla optymalnej implementacji poszczególnych operacji, niemniej dla niektórych operacji nie można jasno wybrać strategii optymalnej. Wygodniej byłoby gdybyś napisał dla każdej sytuacji DLACZEGO uważasz że złożoność wynosi akurat tyle, wtedy będziemy widzieć przy jakich ograniczeniach sie poruszasz.

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