-
Data: 2015-09-19 20:52:10
Temat: Re: Tablica int i usuwanie duplikatów
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 19.09.2015 11:34, szemrany wrote:
> On Sat, 19 Sep 2015 03:08:27 +0200, bartekltg wrote:
>
>>> Kilka lat temu znany tu Sebastian Biały wpadł na sąsiednią grupę delphi, bo
>>> coś zrobić w Delphi musiał i pytał m.in. o hash table. Gdy się dowiedział,
>>> że nie ma to dostał nomen omen białej gorączki i zbluzgał zarówno samo
>>> Delphi jak i kilka postronnych osób ;-) Fakt, że pytał o Delphi 5, które
>>> było z poprzedniego wieku. Teraz dodano kilka kontenerów, ale to jest
>>> dosłownie KILKA.
>>
>> Jezusmariamisiek, jak za fortrana łupanego ;]
>
> Ale to jest zrozumiałe, założenia były jakie były i rozwijano w pierwszej
> kolejności to co było powszechniej potrzebne. Do tego dochodzi zawierucha
> związana z Borlandem, który 10 lat temu odpuścił sobie rozwój Delphi i
> skończyło się prawie jego śmiercią. Po kilku latach znalazła i kilku
10-15 lat temu był i stl, i boost.
;-)
> próbach jego utrzymania, znalazł się w końcu inwestor, firma Embarcadero,
> producent narzędzi bazodanowych, który zaczął dość dynamiczny rozwój
> zarówno środowiska jak i języka (unicode, x64, generyki, funkcje anonimowe,
> bogate RTTI, kompilatory na platformy mobilne i OSX, itd.). Ale to wszystko
> jest z dużym opóźnieniem względem świata. Poza tym ceny lecą w kosmos, a
> bugi wraz z nimi.
Płatny kompilator. W momencie, gdy M$ wypuszcza darmowego visuala
z (pewnemi) prawami komercyjnymi. NIe wróżę im za dobrze.
CHoć z drugiej strony COBOL dalej funkcjonuje, bo pewne
rzeczy 'pisze sie od trzech pokolej w COBOLU' ;-)
>> I zaraz ktoś będzie trzytmał inty jako stringi;)
>
> No niestety, świadomość algorytmiki wśród delphiarzy jest nikła... sam
> staram się wyjść poza schemat, ale to wiąże się z ...dłubaniem ;-)
> A paradoksalnie to właśnie twórca Pascala napisał wszak klasyczną pozycję o
> algorytmach i strukturach danych :-)
Ja też sie na wstępnych latach studiów (wstep do programowania,
ASD) uczyłem na turbopascalu. Pewnie nadal jakiegoś freepascala używają.
BTW, freepescal też się rozwija i tworzy swoje kontenery, mozę
delphi je za jakiś czas zaadoptuje.
>>> oraz starsze:
>>> TBucketList - hash lista na pointery oparta o array of array of pointer,
>>> gdzie pierwsza tablica zawiera kubełki zbudowane przez proste przesunięcie
>>> bitów w prawo, a druga zawiera już wartości dla konkretnego kubełka.
>>
>> O, i z tego co czytem, to jest odpowiednik std::set.
>> http://stackoverflow.com/questions/547879/how-to-jud
ge-number-of-buckets-for-tbucketlist
>> "Aside from that, TBucketList is just an ordinary hash table like you
>> learned about in your data-structure class."
>>
>> I zaraz wspomina o TIntegerBucketList. Super, nie musisz bawić
>> się wskaźnikami, od razu ejst to, co trzeba.
>
> Hmm... czyli tego mógłbym użyć w algorytmie w którym wspominaliście o set?
Tak. Tak mi sie wydaje:
http://docwiki.embarcadero.com/Libraries/XE8/en/Syst
em.Contnrs.TIntegerBucketList
Nie jestem pewien, bo to jest ujnia nie dokumentacja :(
>>> zajęciach z programowania, także kiedyś w pascalu. Nie wiem dlaczego tak
>>> jest, ale widać rynek tego nie potrzebował.
>>
>> Albo brak takiego wsparcia doprowadził do tego, że język stał
>> się niszą do robienia interfejsów do bazy danych:(
>
> Uhm... właśnie, a szkoda, bo lubię jego czytelność, która znacznie ułatwia
> refaktoring, np. w stosunku do nieszczęsnej składni C++ (no ofense
> siplusowcy! ;-)
W c++ możesz pisać równie czytelnie jak w pascalu.
Tylko w c++ mozesz też pisać nieczytelnie, nawet bardzo nieczytelnie.
Ale to ta sama zasada co z używaniem niskopoziomowych kostrukcji,
to, że są dostępne, nie oznacza, zę zawsze powinno się z nich
korystać.
>
>>> Są co prawda fajne zewnętrzne projekty, a jeden z nich się rozwija od lat
>>> poważnie i wygląda na to, że już nie padnie, jest nim Spring for Delphi:
>>>
>>> https://bitbucket.org/sglienke/spring4d
>
>> Mi się nie udało na szybko nawet doikumentacji znaleźć, żeby
>> zobaczyć, co tam jest ;-)
>
> Przecież jest:
> https://bitbucket.org/sglienke/spring4d/wiki/Home
> i stąd odnośniki.
>
> Poza tym ja już od dawna jako najlepszej dokumentacji używam samych źródeł
> oraz źródeł testów jednostkowych ;-)
No jak nie masz porządnej dokumentacji, to musisz się męczyć;-)
> Choć rozumiem, że dla kogoś spoza
> świata Object Pascala kod może być trudniejszy do czytania, tak jak dla
> mnie potworki C++ :-P
Kod biblioteczny c++ jest ciężki do czytania. Bo używa się tam
ość skompilkowanyvch konstrukjic, by potem _używanie_ tych bibliotek
było łatwe.
Dokumentacja powinna wyglądać tak:
http://en.cppreference.com/w/cpp/container/unordered
_map
Krótki opis co to jest, lista metod i pól, do każdej opis
co robi (jakie sa argumentry, co wypluwa) i przykład.
> No tak, tu mnie masz... Ale gdybym jednak się już miał zajmować czymś innym
> to nie będzie to na pewno C++... nie lubię tej skomplikowanej składni i
> asemblerowej niskopoziomowości.
W c++ jest jezykiem wyskiego poziomu. IMHO jest tam więcej
wysokopoziomowych konstrukcji niż w Pascalu (generyczne, funkcyjne...).
Chyba mylisz c++ z c.
Tak, w C+ można dobrać się do bebechów, ale nie jest to normalny
sposób pisania.
To, że jezyk daje więcej możliwosćie najczęśćiej jest zaletą.
A, że programiści to często bałąganiarze, to ta zaleta czasem
wychodzi bokiem ;-)
.....
>> sortowanie stab
>> poprawność:
>> 12 457 12 457 1 56 89 12 11 11 55 11 11 1 457
>> 12 457 1 56 89 11 55
>> szybkość
>> 10 zajelo 2.14358e-07s
>> 100 zajelo 3.83037e-06s
>> 1000 zajelo 7.91519e-05s
>> 10000 zajelo 0.00108764s
>> 100000 zajelo 0.0153062s
>> 1000000 zajelo 0.267471s
>> 10000000 zajelo 5.37913s
>
> No to mam dane do rozkminy na dłuższe posiedzenie, dzięki :-)
Poza najwyższym wynikiem czasy są nieco zepsute (kolejne odpalenia
szły dla tablicy z samymi unikatami). Porównanie algorytmów dla
tej samej liczby powtórzeń nadal ma sens*), ale porówanie różnych
do siebie może nieść pewien błąd.
testy dla 10000000 miały tylko jeedn obrót pętli i są OK.
*) można mieć wątpliwosći co do wersji z sortowaniem + unique,
bo wynik jest posortowany, ale gcc używa qsorte (introsorta dokładniej)
z medianą z trzech, a nie timsorta, więc posortowaną tablicę sortuje
się własciwie tak samo długo jak losową.
Jak będize mi sie chciało zrobić porządek, poprawie kod i wyniki.
pzdr
bartekltg
Następne wpisy z tego wątku
- 19.09.15 21:01 bartekltg
- 20.09.15 16:27 slawek
- 20.09.15 17:14 bartekltg
- 21.09.15 08:09 Tomasz Kaczanowski
- 22.09.15 13:43 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-01-06 Jeździ, skręca, hamuje
- 2025-01-06 Białystok => System Architect (Java background) <=
- 2025-01-06 Gliwice => Specjalista ds. public relations <=
- 2025-01-06 Białystok => Solution Architect (Java background) <=
- 2025-01-06 Zielona GĂłra => Konsultant WdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg