• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zlozonnośc czasowa

Mały hosting, OGROMNE możliwości
0 głosów
269 wizyt
pytanie zadane 19 maja 2022 w C i C++ przez pasjonat_algorytmiki Pasjonat (19,540 p.)
edycja 19 maja 2022 przez pasjonat_algorytmiki

Cześc,

Dodawanie elementów na set ma O(log n). A czy dodanie seta na set - kod poniżej.

#include <iostream>
#include <set>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    set<set<int>> zbior_main;

    zbior_main.insert({1,2,3});
    return 0;
}

Też ma O(log n)?

Wiem, że jest coś takiego jak sumy harmoniczne i z tego co czytałem, to może to być identyfikatorem. Wie ktoś jak to działa?

1 odpowiedź

+2 głosów
odpowiedź 20 maja 2022 przez adrian17 Mentor (354,880 p.)
Zależy jakie są zmienne i miara "czasu" (wykonanych operacji).

Niezależnie od przechowywanego typu, jeśli tym co mierzymy jest liczba operacji porównania, to to wciąż jest O(log n).

Ale jeśli uwzględnimy czas operacji porównania, dodamy nową zmienną "m" i założymy że wszystkie wewnętrzne sety mają rozmiar m, to skoro każda operacja porównania std::set'ów ma złożoność liniową, to na oko cały insert miałby złożoność czasową O(m * log n).

Podobne pytania

0 głosów
3 odpowiedzi 694 wizyt
pytanie zadane 24 lutego 2023 w C i C++ przez polandonion Dyskutant (7,700 p.)
0 głosów
1 odpowiedź 1,444 wizyt
0 głosów
1 odpowiedź 1,025 wizyt

93,718 zapytań

142,631 odpowiedzi

323,263 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...