-
Data: 2015-09-17 14:37:51
Temat: Re: Tablica int i usuwanie duplikatów
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-24 Warszawa => Junior C# / FrontEnd developer <=
- 2025-06-24 Warszawa => Sales Executive / KAM <=
- 2025-06-23 Warszawa => MENA New Business Manager <=
- 2025-06-23 Trójmiasto => Head of Social Media <=
- 2025-06-23 Tapeta w Xiaomi
- 2025-06-23 Gdańsk => Programista Kotlin <=
- 2025-06-23 Białystok => Programista Mainframe (z/OS, Assembler) <=
- 2025-06-23 Warszawa => Senior Account Manager <=
- 2025-06-23 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-23 Warszawa => Starszy Programista C <=
- 2025-06-23 Warszawa => Tester Automatyzujący <=
- 2025-06-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-06-23 Warszawa => Programista Full Stack .Net <=
- 2025-06-23 Warszawa => Software .Net Developer <=
- 2025-06-23 Martwy satelita nadał sygnał po dziesięcioleciach