-
X-Received: by 10.140.95.111 with SMTP id h102mr223074qge.32.1442493471401; Thu, 17
Sep 2015 05:37:51 -0700 (PDT)
X-Received: by 10.140.95.111 with SMTP id h102mr223074qge.32.1442493471401; Thu, 17
Sep 2015 05:37:51 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
kq10no5565864igb.0!news-out.google.com!l36ni691qgd.1!nntp.google.com!v79no17616
30qge.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 17 Sep 2015 05:37:51 -0700 (PDT)
In-Reply-To: <mtcq5e$tdl$1@node1.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.206.163;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 178.36.206.163
References: <q1dqtorkbx55$.vtwhsmj03gkt$.dlg@40tude.net>
<mt7umm$ulv$1@node1.news.atman.pl>
<3aivb8qrco1q$.13cffg23pn4pg.dlg@40tude.net>
<a...@n...v.pl>
<mtav82$r76$1@node2.news.atman.pl>
<a...@n...v.pl>
<mtbd2l$9d5$1@node2.news.atman.pl>
<5...@g...com>
<mtbvi8$1ro$1@node1.news.atman.pl> <mtc22e$4hh$1@node1.news.atman.pl>
<mtc3ip$vok$1@node2.news.atman.pl> <mtc56n$7m6$1@node1.news.atman.pl>
<b...@g...com>
<mtcaik$d1l$1@node1.news.atman.pl> <mtckeb$nhk$1@node1.news.atman.pl>
<mtcmsn$j1k$1@node2.news.atman.pl> <mtcq5e$tdl$1@node1.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1...@g...com>
Subject: Re: Tablica int i usuwanie duplikatów
From: "M.M." <m...@g...com>
Injection-Date: Thu, 17 Sep 2015 12:37:51 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:208338
[ ukryj nagłówki ]On Thursday, September 17, 2015 at 12:23:43 AM UTC+2, bartekltg wrote:
> On 16.09.2015 23:27, AK wrote:
> > Użytkownik "bartekltg" napisał:
> >
> >> No właśnie, niekiedy. A w standardowym przypadku jesteśąmy do tyłu.
> >> Jeden przebieg zajmie zauważalną cześć czasu proponowanych tu
> >> rozwiązań.
> >> To wydaje się zbyt lekki problem na wstępną analizę danych.
> >
> > Zalezy. Zalkezy co sie rozumie pod terminem "przypadek standardowy".
> > IMHO standardowy przypadek do dane "merytoryczne"/dziedzinowe.
>
> Przecież o tym piszę. Coś można wyciagnać i wykalibrować
> algorytm, jeśli wiadoom, jakich danych statystycznie się spodziewać.
Jak już przeciągamy, to ja ciekawy jestem, dla jakich danych najszybszy
będzie będzie algorytm O(N^2). Jakie N, jaki procent duplikatów i jaki
rozstęp, aby był najszybszy. Coś w ten deseń (z góry sory za błędy):
bool exists( int t[] , int N, int v ) {
for( i=0 ; i<N ; i++ )
if( t[i] == v )
return true;
return false;
}
int uniq( int t[] , int N ) {
for( i=j=0 ; i<N ; i++ ) {
if( ! exist( t , j , t[i] ) )
t[j++] = t[i];
}
return j;
}
Dla N=100 mamy około 2500 operacji. Przy N*LogN mamy
tylko 600, ale implementacja algorytmu kwadratowego
jest zabójczo wydajna.
Pozdrawiam
>
>
> > Jesli to sa dane "merytoryczne" to max -min << MAX_UINT
>
>
> Bardzo dziwne załozenie. Pewnie prawdziwe, w _neiktórych_
> dziedzinach.
>
> > a wtedy mozna "zjechac" zznacznie z pamiecia gdyz zamiast hasha pelnego
> > uinta mozna uzyc bitseta na rzeczywiscie uzywawanej maxymalnej ilosci bitow
> > /czyli bits(max - min)/.
>
> Główny spadek zapotrzebowania pamięciowego bierze się stąd,
> że tablica będzie nie większa niż O(max-min).
> Jak max-min zejdzie do zakresu bajta-dwóch, to w ogole
> nie bawiłbym się w hashowanie, tylko zliczał. A to było
> opisane jako pierwsza metoda w tym wątku.
> Jest to jednak bardzo sztuczny przypadek (tak, tak, są
> "dziedziny" gdzie to przypadek standardowy).
>
>
>
> pzdr
> bartekltg
Następne wpisy z tego wątku
- 17.09.15 15:14 bartekltg
- 17.09.15 16:37 AK
- 18.09.15 00:18 bartekltg
- 18.09.15 07:22 slawek
- 18.09.15 15:15 bartekltg
- 18.09.15 18:07 M.M.
- 18.09.15 18:20 bartekltg
- 18.09.15 20:22 szemrany
- 18.09.15 20:47 bartekltg
- 18.09.15 21:01 szemrany
- 18.09.15 21:36 bartekltg
- 18.09.15 22:50 szemrany
- 19.09.15 03:08 bartekltg
- 19.09.15 11:34 szemrany
- 19.09.15 13:35 M.M.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=