eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDrzewa AA › Re: Drzewa AA
  • X-Received: by 10.31.151.77 with SMTP id z74mr18258vkd.3.1503354464578; Mon, 21 Aug
    2017 15:27:44 -0700 (PDT)
    X-Received: by 10.31.151.77 with SMTP id z74mr18258vkd.3.1503354464578; Mon, 21 Aug
    2017 15:27:44 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-medi
    a.com!news.highwinds-media.com!v29no2260114qtv.0!news-out.google.com!i9ni42689q
    te.0!nntp.google.com!v29no2260108qtv.0!postnews.google.com!glegroupsg2000goo.go
    oglegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Mon, 21 Aug 2017 15:27:44 -0700 (PDT)
    In-Reply-To: <5...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=159.205.148.252;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 159.205.148.252
    References: <1...@g...com>
    <5...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <d...@g...com>
    Subject: Re: Drzewa AA
    From: "M.M." <m...@g...com>
    Injection-Date: Mon, 21 Aug 2017 22:27:44 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    X-Received-Body-CRC: 4225127135
    X-Received-Bytes: 4506
    Xref: news-archive.icm.edu.pl pl.comp.programming:211220
    [ ukryj nagłówki ]

    On Monday, August 21, 2017 at 10:58:34 PM UTC+2, bartekltg wrote:
    > On Monday, August 21, 2017 at 2:09:05 AM UTC+2, M.M. wrote:
    > > Pierwszy raz się z czymś takim spotykam. Podobno są tak samo wydajne jak drzewa
    czerwono czarne, ale są prostsze w implementacji.
    > >
    > > Cytat ze stacka:
    > > [
    > > An alternative to all these trees are AA-Trees. As this PDF paper suggests,
    AA-Trees (which are in fact a sub-group of RB-Trees) are almost equal in performance
    to normal RB-Trees, but they are much easier to implement than RB-Trees, AVL-Trees,
    or B-Trees. Here is a full implementation, look how tiny it is (the main-function is
    not part of the implementation and half of the implementation lines are actually
    comments).
    > > ]
    >
    >
    > Zapomniałeś dać linka do źródła cytatu:>
    >
    > >
    > > Prawda czy fałsz?
    >
    > Które są szybsze zależy od tego, co będziesz robił.
    > https://stackoverflow.com/questions/22435912/red-bla
    ck-trees-versus-andersson-trees
    >
    > pzdr
    > bartekltg

    Racja:
    [
    So there's a trade-off here: when comparisons are cheap but updates are frequent, a
    red-black tree might outperform an AA tree; otherwise, when comparisons are expensive
    but lookups are more frequent than updates, the AA tree might win.
    ]

    Myślę jednak, że te różnice są niewielkie. Gdy jest naprawdę dużo
    porównań, to jak już pisałem, można zaimplementować rb-tree na
    tablicy i posortować w czasie O(N) przed długą serią wyszukiwań.
    Gdy są dosłownie wyszukiwania (dosłownie, czyli nie ma lowerBound, ani
    upperBound), to można też w czasie O(N) zbudować hash-table - ale
    to wymaga dodatkowej pamięci.

    Oczywiście jest jeszcze i taka możliwość, że w losowej chwili
    robimy jedną modyfikację na 5-30 wyszukiwań. Gdy jest to 5, to
    może lepsze będą rb-tree, gdy 30, to może AA-tree. Trudno
    powiedzieć bez zmierzenia.

    Chwilowo mam taką sytuację w której mogę przewidzieć, że po jednej
    modyfikacji będą miliony wywołań lowerBound, więc rb-tree na tablicy z
    sortowaniem wydaje się najlepsze. A w dodatku modyfikacja czasami
    może nie zaburzać porządku drzewa, więc chyba już nic lepszego
    nie znajdę - aczkolwiek trochę mi się zrobiło głupio, że można
    podobny efekt do rb-tree uzyskać przy pomocy króciutkiego kodu :)

    Pozdrawiam

    P.S.
    Wrzuciłem na bloga ulepszony program do przetestowania:
    https://drzewa-czerwono-czarne.blogspot.ch/p/kod-zro
    dowy-programu-testujacego.html

    A także skrypt automatyzujący test:
    https://drzewa-czerwono-czarne.blogspot.ch/p/skrypt-
    do-wykonania-testu-implementacji.html

    Kod drzewka pod starym adresem:
    https://drzewa-czerwono-czarne.blogspot.ch/p/kod-zro
    dowy-c-drzewa-czerwono-czarne.html

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: