-
Data: 2012-07-15 19:35:44
Temat: Re: W NYC ucza przedszkolakow C++
Od: Edek Pienkowski <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia Sun, 15 Jul 2012 16:41:06 +0000, PK napisal:
> On 2012-07-15, Edek Pienkowski <e...@g...com> wrote:
>> Sortowanie nie jest z ostatnich 10 lat. Nie wiem, co masz na myśli
>
> Wspomniany wcześniej Timsoft jest z 2002 roku. Nie jest to algorytm
> znany, ale jest bardzo często używany (przez popularność Pythona, więc
> w pewnym sensie ważny :)). Z tego samego roku pochodzi bardzo ciekawy
> spreadsort (polecam poczytać).
Z kwietnia czy października? To już prawie 10 ;)
> Z bardziej znanych... tu nie mam pewności, ale chyba bucket sort
> (jako uogólnienie kilku innych) jest dosyć świeży. Z całą pewnością
> w ostatnich latach ten algorytm był mocno rozwijany.
>
>> mówiąc "algorytmika". Jeżeli tworzenie nowego algorytmu sortowania to ok,
>> ale przy zwykłym stosowaniu i to "często i gęsto" sortowania nie ma
>> żadnego znaczenia, jakiego sorta używa biblioteka, o ile a) nie jest
>> w ciasnej pętli, albo b) nie ma zauważalnie dużo elementów. Ostatecznie
>> i tak z profilerem się nie dyskutuje.
>
> Może w Twoim doświadczeniu nie ma, ale ludzie mają różne sytuacje.
> Np. dla mnie zazwyczaj wariant pesymistyczny jest znacznie bardziej
> istotny niż średni - dlatego m.in. nie używam quicksorta. Poza tym
> często cierpię na deficyt RAMu i staram się dobierać algorytmy in situ.
Ja faktycznie mam takie podejście do sortowania jak do nowego modelu
uchwytu śrubokręta. Zwracam na nie uwagę tylko wtedy gdy jest mi
potrzebny akurat taki a nie inny. Domyślam się, że mamy tu swoistą
symetrię.
> Niektóre algorytmy dobrze radzą sobie z ciągami zupełnie losowymi,
> a inne z już częściowo posortowanymi.
To jest odwieczny problem, dane o określonej skrukturze mogą trafić
w wariant pesymistyczny albo nawet trafiać bardzo często. Brak
struktury to też pewna cecha z gatunku cech strukturalnych,
nie ma jak tego skompresować chociażby.
Z ciekawości, który algorytm najlepiej odwróci sortowanie?
(Poza reverse(), nie wiemy, że są posortowane odwrotnie).
> I to nie jest tak, że chcę być fajny i optymalizuję sortowanie
> 200 numerów telefonów w książce adresowej :). Te problemy są dla mnie
> naprawdę istotne :).
Rozumiem. O większości powyższych słyszałem, w dokumentacji bibliotek
Pythona też pamiętam, że chyba faktycznie był to timsort, ale mój
mózg nisko spriorytetyzował tę informację i się zagubiła.
Zaskoczyło mnie, że te algorytmy są stosunkowo nowe. Doczytam kiedyś
w wolnej chwili, kiedyś ta wiedza się może przydać. Kolejna dziedzina,
gdzie wydawałoby się że nic już nowego nie powstanie, a jednak.
> Wiem, że jestem w tym wypadku marginesem, ale to nie zmienia faktu, że
> każda osoba używająca jakiejś funkcji "sort()" powinna przynajmniej
> wiedzieć, co ta funkcja zwraca, czyli czy algorytm jest stabilny.
> Widywałem już programy sypiące się, bo autor o tym zapomniał.
Prawda, ja też widzę często bardziej podstawowe błędu typu a < b < c
i c < a. Nie różnię się tutaj od innych programistów, robię błędy
które muszę poprawiać, takie też z podobną częstotliwością jak
if (a) zamiast if (!a).
Edek
Następne wpisy z tego wątku
- 15.07.12 19:33 Wojciech Jaczewski
- 15.07.12 20:18 PK
- 16.07.12 00:38 Wojciech Jaczewski
- 16.07.12 11:25 AK
- 16.07.12 11:31 AK
Najnowsze wątki z tej grupy
- 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
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-02 Realme 7 Na co zmienić?
- 2024-06-27 Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-07-02 znalazłem samochód ;)
- 2024-07-02 Pierwszeństwo łamane
- 2024-07-02 zamek
- 2024-07-02 Akumulatory VRLA
- 2024-07-03 Białystok => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-07-03 MĂźnchen => Test Development Engineer (m/w/d) <=
- 2024-07-03 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-07-03 Warszawa => Programista Full Stack (.Net Core) <=
- 2024-07-02 Kraków => Spedytor międzynarodowy <=
- 2024-07-02 Poznań => Senior React Native Developer <=
- 2024-07-02 Rzeszów => Frontend Developer (React) <=
- 2024-07-02 Warszawa => Fullastack (Java) Developer <=
- 2024-07-02 reparacje