-
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!news.glorb.com!news-out.readnews.com!transi
t4.readnews.com!209.85.216.88.MISMATCH!l8no51944153qao.0!news-out.google.com!r1
7ni24752519qap.0!nntp.google.com!l8no51944148qao.0!postnews.google.com!glegroup
sg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sun, 14 Oct 2012 14:43:39 -0700 (PDT)
In-Reply-To: <k5fap5$qo5$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=79.162.93.141;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 79.162.93.141
References: <k59gbj$be7$1@node2.news.atman.pl> <k5bvji$n79$7@mx1.internetia.pl>
<7...@g...com>
<k5c6ta$hlr$1@mx1.internetia.pl>
<2...@g...com>
<b...@g...com>
<c...@g...com>
<k5cs8t$bkr$1@node1.news.atman.pl>
<7...@g...com>
<k5e2d2$jgh$1@node2.news.atman.pl>
<a...@g...com>
<k5eoaa$5rd$2@node1.news.atman.pl>
<c...@g...com>
<k5epck$9mm$1@node2.news.atman.pl>
<0...@g...com>
<k5equl$b7l$1@node2.news.atman.pl>
<9...@g...com>
<k5eule$cj3$1@node1.news.atman.pl> <k5f6nr$mov$1@node2.news.atman.pl>
<3...@g...com>
<d...@g...com>
<k5fap5$qo5$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6...@g...com>
Subject: Re: sortowanie
From: kenobi <p...@g...com>
Injection-Date: Sun, 14 Oct 2012 21:43:39 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Lines: 176
Xref: news-archive.icm.edu.pl pl.comp.programming:199923
[ ukryj nagłówki ]W dniu niedziela, 14 października 2012 23:28:06 UTC+2 użytkownik bartekltg napisał:
> W dniu 2012-10-14 22:57, kenobi pisze:
>
> > W dniu niedziela, 14 października 2012 22:51:46 UTC+2 użytkownik kenobi napisał:
>
> >> ...użytkownik kenobi napisał:
>
>
>
>
>
> >>> co tu robi to --h ? jest na pewno dobrze?
>
>
>
> Na pewno jest dobrze.
>
>
>
> W h trzymasz liczbę wystąpień.
>
>
>
> Pod h[0] masz liczbę zer, pod h[1] liczbę jedynek
>
>
>
> Robisz sumy częściowe
>
> teraz pod h[0] nadal masz liczbę zer,
>
> ale pod h[1] liczbę zer i jedynek. pod h[2] liczbe zer,
>
> jedynek i dwójek.
>
>
>
> Ta na co pokazuje temp[ h[2] ] ?
>
> pokazuje na pierwsze miejsce _po_ ostatniej dwójce.
>
> Czyli ostatnia dwójka powinna znaleśc się na miejscu
>
> o jeden wcześniej.
>
> Robimy --h[2], pod wynikiem wkłądamy co trzeba.
>
>
>
> h pełni rolę _ruchomych_ wskaźników pokazujących,
>
> gdzie układać daną liczbę.
>
>
>
> Ok, przyznaje, nie jest to wersja edukacyjna,
>
> i zawiera trochę 'chackierskich przedwczesnych
>
> optymalizacji' i skrótowe konstrukcje.
>
> Dopiero co się nimi zachwysałeś
>
>
>
> być może
>
> temp[--h[(unsigned short)tab[j]]]=tab[j];
>
> ->
>
> kategoria = (unsigned short)tab[j];
>
> --h[kategoria]; //przesuwamy wskażnik tablicy dla elementow kategorii
>
> kategoria
>
> indeks = h[kategoria];
>
> temp[indeks] = tab[j]
>
>
>
> byłaby czytelniejsza;)
>
>
>
>
>
> >> nie rozumiem tego zlozenia, jak sortowanie tego
>
> >>
>
> >> co bylo posortowane po niskiej polowie po wysokiej czesci zlozy sie tak by
wszystko bylo ok?
>
>
>
> _Sortowanie stabilne_. Jeśli w drugim sortowaniu dwa elementy są takie
>
> same, to ich względna kolejność pozostanie taka sama jak po pierwszym.
>
>
>
> > w kazdym razie jesli to nie ma bledu i dziala
>
>
>
> Nie ma, działa.
>
>
>
> > to jest to sprytny kawalek kodu - dziwne jednak jakoby to mialo byc tylko 2-3
razy szybsze,
>
>
>
> Bo tu przelatujemy po dużej tablicy 6 razy, a w qsorcie
>
> log(N) razy. Log2(10^7) = 23 (tak naprawdę mniej, bo
>
> końcówkę robi się inaczej, a do tego działa się bardziej
>
> 'lokalnie', co jest szybsze).
>
>
>
> Dopiero co się szkicem tego algorytmu zachwycałeś.
>
> Od szkicu do implementacji droga wiedzie przez
>
> nieraz upierdliwe szczegóły;)
>
>
>
> Drzewa AVL są w idei super. Ale weź na szybko zaimplementuj
>
> równoważenie.
>
>
>
> > new mona wyrzucic i zrobic histogramy na statycznych tablicach
>
>
>
> Statyczna tablica na 40MB?
>
>
>
> To nie jest nawet zły pomysł. To głupi pomysł.
>
>
>
> Zrobiłem wersję z dodatkowym parametrem, buforem tworzonym
>
> raz na zewnątrz (poza licznikiem czasu) i przekazywanym do środka.
>
> Różnice były zbyt małe by warto było o nich wspominać,
>
> więc nawet nie pisałem.
>
>
histogramy maka tu po 256KB wiec o jakich 40MB mowa,
szkoda ze tylko 2-3 razy szybsze :/ oryginalna pojedyncza
wersja dla mniejszych zakrezsow np do miliona pewnie
wiecej szybsza,
jak to dziala a chyba dziala (testuje wlasnie ) to jest
wlasnie to o czym mowilem i to o co mi chodzilo nawet
lepiej jak mowilem sklecone niz myslalem - tak ze
jest to poniekad przypuszczam algorytm najszybszy
z wszystkich omawianych :U
Następne wpisy z tego wątku
- 15.10.12 00:01 bartekltg
- 15.10.12 00:43 kenobi
- 15.10.12 00:54 bartekltg
- 15.10.12 01:39 M.M.
- 15.10.12 07:49 kenobi
- 15.10.12 08:00 kenobi
- 15.10.12 08:53 Tomasz Kaczanowski
- 15.10.12 10:03 kenobi
- 15.10.12 13:25 kenobi
- 15.10.12 16:41 bartekltg
- 15.10.12 17:19 bartekltg
- 15.10.12 17:34 kenobi
- 15.10.12 17:40 kenobi
- 15.10.12 18:18 bartekltg
- 15.10.12 19:13 Michoo
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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
Najnowsze wątki
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi
- 2024-12-20 Opole => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-20 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-20 Rzeszów => International Freight Forwarder <=
- 2024-12-20 Katowice => Key Account Manager (ERP) <=
- 2024-12-20 Ekstradycja
- 2024-12-20 Mikroskop 3D
- 2024-12-20 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-20 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-20 Warszawa => Full Stack .Net Engineer <=
- 2024-12-20 Warszawa => Programista Full Stack .Net <=
- 2024-12-19 Kamerka sam. na tył
- 2024-12-20 Jak być bezpiecznym z Li-Ion?