-
X-Received: by 10.31.67.78 with SMTP id q75mr10769vka.10.1502876401268; Wed, 16 Aug
2017 02:40:01 -0700 (PDT)
X-Received: by 10.31.67.78 with SMTP id q75mr10769vka.10.1502876401268; Wed, 16 Aug
2017 02:40:01 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!pee
r03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!border1.nntp.dca1.
giganews.com!nntp.giganews.com!s6no158506qtc.1!news-out.google.com!i9ni50qte.0!
nntp.google.com!w51no160354qtc.0!postnews.google.com!glegroupsg2000goo.googlegr
oups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 16 Aug 2017 02:40:00 -0700 (PDT)
In-Reply-To: <0...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.70.120.200;
posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
NNTP-Posting-Host: 89.70.120.200
References: <oms9l6$db4$1@node2.news.atman.pl>
<f...@g...com>
<0...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2...@g...com>
Subject: Re: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
From: bartekltg <b...@g...com>
Injection-Date: Wed, 16 Aug 2017 09:40:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 80
X-Received-Bytes: 4031
X-Received-Body-CRC: 144765402
Xref: news-archive.icm.edu.pl pl.comp.programming:211112
[ ukryj nagłówki ]On Wednesday, August 16, 2017 at 11:21:12 AM UTC+2, M.M. wrote:
> On Wednesday, August 16, 2017 at 2:52:19 AM UTC+2, bartekltg wrote:
>
> > Facet tu mówi o tym:
> > https://www.youtube.com/watch?v=JfmTagWcqoE
> > Ok 16 minuty zaczyna się właściwa cześć, wcześniej konstruuje
> > drzewo na mądrych wskaźnikach.
> > [...]
>
> Ja mam pytanie, w jakich zastosowaniach naprawdę jest potrzebne
> drzewo na wskaźnikach (jakichkolwiek)? Ja mam drzewka zazwyczaj
> na QVectorze, ale mogę też, jako odpowiednik allocatora, szablon
> drzewka sparametryzować std::vector, std::array, itd.
A co za różnica. Tu masz wskaźniki, u siebie masz indeksy.
Na wskaźnikach jest ciut bardziej elastyczne jeśli chodzi
o zwalnianie pamięci, ale masz pierdolnik z alokacją.
Jeśli zrobisz pulę obiektów, to już w ogole różnicy nie będzie.
> Drzewko na tablicy jest niby ciut wolniejsze, ale oszczędza
> pamięć, bo jako indeksy można użyć int8, int16, int32, a
> wskaźnik ma rozmiar 64 bity.
Można, jeśli masz małe drzewo.
Wyrównanie i tak pewnie kopnie w tyłek i będize to samo co int32.
> W efekcie jest więcej trafień w
> cache i drzewko jest w niektórych przypadkach 1.5 raza
> szybsze.
Tak, jak masz małe drzewo, to jest wiecej trafień.
> > Dośc pobieżnie, i jestem niemal pewien, ze kod, który pokazuje
> > jest n^2 a nie nlogn ;-) Jeśli mamy wskaźnik na parent to łatwo
> > naprawić.
> >
> > Pomysł, by zwalniać w pętli jeśli jest jeden potomek,
> > rekurencyjnie, gdy więcej, nie sprawdzi się:
> > /\
> > /\
> > /\
> > /\
> > /\
> > /\
> > /\
> > /\
> >
> > To drzewo też ma głębokość O(n), a zwalniasz je rekurencyjnie.
> > (do naprawienia, jeśli masz głęgokość poddrzewa, ale to bardzo
> > szczegolny przypadek).
>
> Ale ostatni potomek też iteracyjnie.
Nie rozumiem.
>
>
> > @pomysł M.M. by przerzucić wierzchołki do innego kontenera i tam je
> > skasować (pomysł wspominany i w filmiku) nie wymaga tak dużego stosu.
> To chyba najprostsza metoda. Dwa wektory są potrzebne. Jeden ma
Nie. Jeden vector wystarczy. Rozwi,ązanie miałeś niżej.
pzdr
bartekltg
Następne wpisy z tego wątku
- 16.08.17 12:08 M.M.
- 16.08.17 12:24 bartekltg
- 16.08.17 15:46 Borneq
- 16.08.17 16:05 Borneq
- 16.08.17 16:06 bartekltg
- 16.08.17 16:07 M.M.
- 16.08.17 16:11 bartekltg
- 16.08.17 16:22 Borneq
- 16.08.17 16:42 M.M.
- 17.08.17 00:31 bartekltg
- 17.08.17 01:12 M.M.
- 17.08.17 02:46 Borneq
- 17.08.17 08:11 Tomasz Kaczanowski
- 17.08.17 12:26 M.M.
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-14 Dobra zmiana
- 2024-11-14 Czy prezydent może ułaskawić od zadośćuczynienia? [A. Lepper odszkodowania]
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=