Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #27552

Re: Tablica int i usuwanie duplikatów

From bartekltg <bartekltg@gmail.com>
Newsgroups pl.comp.programming
Subject Re: Tablica int i usuwanie duplikatów
Date 2015-09-18 21:36 +0200
Organization ATMAN - ATM S.A.
Message-ID <mthp48$epf$1@node2.news.atman.pl> (permalink)
References (17 earlier) <mtfe8g$7cu$1@node2.news.atman.pl> <a2eb3582-5ca2-447b-b90c-43136810bb88@googlegroups.com> <1ozh9732tw6vb.1k80ivwsjct79.dlg@40tude.net> <mthm8f$p6g$1@node1.news.atman.pl> <13goui39dxzb2.1kw5grc7j0y14.dlg@40tude.net>

Show all headers | View raw


On 18.09.2015 21:01, szemrany wrote:
> On Fri, 18 Sep 2015 20:47:42 +0200, bartekltg wrote:
>
>>>> Właśnie nie pamiętam ile to było. Oryginalny pytacz będzie
>>>> testował, to pewnie nam powie jakie miał benchmarki :) Ja
>>>> strzelam że pomiędzy 500-1000.
>>>
>>> Pytacz nie będzie chyba aż tak złożonych testów robił. Poza tym pytacz
>>> wszystkich opisanych algorytmów nie kuma
>>
>> To trzeba pytać. Milczy, znaczy rozumie.
>> ;-)
>>
>> Zwłaszcza po tym, jak marudziłeś, że za proste rozwiązania
>> dostałeś;-)
>
> Nie proste tylko niepełnosprytne ;-)
> A potem się zaczęło ...zbyt sprytnie :-)
>
> Gdy pytałem o algorytmy myślałem o czymś bardziej opartym o matematykę, ale
> jak się okazuje akurat ten problem jest mało matematyczny.
>
>>> lub nie może zrobić, bo w Delphi
>>> nie ma niektórych potrzebnych językowych patentów, jak np. sety. Tzn. są
>>> sety, ale ograniczone do 256 elementów.
>>
>> Przez set mieliśmy na myśli kontener (u nas trzymający inty) oparty na
>> zrównoważonych drzewach binarnych. Nie ma to nic wspolengo "set of"
>> z (delphi) pascala. Unordered_set to kontener (zawierający u nas inty)
>> który trzyma je w tablicy hashującej.
>
> Tak, tylko, że Delphi miało inne założenia produkcyjne i nie ma milionów

Założenia miało te same. A nawet bardziej nastawione na biblioteki,
bo było to tzw RAD. Miałeś szbyko budować aplikacje z klocków,
nie pisać własny standardowy kontener.

 > nie ma milionów
> kontenerów jak C++. Muszę część rzeczy wydłubać sam.

Po prostu nie wierzę.

Tak, pascal jest mentalnie związany z uczeniem programowania,
i każdy nowy programista koniecnzie musi pisać własnego
qsorta i drzewo AVL, ale to szybko przechodzi, a jeśli
język jest więcej niż parę osób używany komenrcyjnie (a Delphi
jak mówisz, nadal jest, a jakis czas temu było bardzo poważnie
używane),  na pewno biblioteki są.

Zresztą, sam w poprzednim poście znalazłeś TDictionary,
odpowiednik mapy, i to w wersja która wygląda na szablonową.
Pewnie obok jest i zwykły zbiór, i tablica hashuhjąca.
TDictionary wystarczy.


>> Nie mam pojęćia, jak to się w Pascalu nazywa. (Googlem znalazłem tylko
>> jakieś paskudzctwa bawięce się wskaźnikami do obiektów, ze świecą
>> szukać informacji, co siedzi pod spodem i jaka jest złożoność operacji)
>> Pewnie Tcośtamcośtam. :)
>> Skoro jest to język nadal używany, na pewno gdzieś jest.
>
> Nie chcę używać dziesiątek obcych bibliotek, bo to co teraz robię pakuję do
> swojego frejmworka do użycia także w przyszłości, więc nie chcę mieć zbyt
> wielu ogonów.

Przejdź na ciemną stronę.
C++, java, nawet python.
Mniej czasu poświeceisz na  nowy język niż na pokonywanie
takich problemów. ;]


>
>>> Zrobiłem na razie klasyczny algorytm z dwoma pętlami i porównaniem (z tym,
>>> że zrobiłem dwie różne wersje) oraz teraz konwertuje algorytm, który podał
>>> AK napisany w C. Na razie utknąłem na składni niektórych poleceń, czekam w
>>> innym wątku aż AK mi odpowie.
>>> Jeszcze zrobię werję z Hash Table, która jest zaimplementowana w Delphiowym
>>> TDictionary (hash jest oparty o algorytm Jenkinsa).
>>> I to chyba wszystko.
>>
>> Bez sensu. Tablicę hashującą robisz na tablicy.
>> TDictionary to odpowiednik std::map, obiekt bardzo podobny do zbioru.
>> Mając TDictionary nie musisz nic na nim budować, korzystasz z niego
>> bezpośrednio, trzymając informację, int->ilosć wystyępień.
>> Szczegoły już padły.
>
> Jak już pisałem wcześniej piszę generyczny moduł, który operuje na
> tablicach TArray<T> i potrafi z nich:
> - usuwać dowolne elementy
> - usuwać duplikaty
> - porównywać dwie tablice
> - itd.
>
> Stąd potrzebuję algorytmów niskopoziomowych, które sobie w tymże module
> zaimplementuję. Jeśli okaże się, że użycie TDictionary da jakiś zysk na


Przecież ni o tym pisałem.
Wewnętrz algorytmu wyznaczajacego duplikaty używasz dołego
TDictionary tak, jak w praktycznie wszystkich opisanych tu
sposobach.

> dużych tablicach względem algorytmu naiwnego z pętlami to tej wersji też
> będę używał.

Da. A jeszcze szybsze byłoby zrobienie kopii i sortowanie ;-)


pzdr
bartekltg


Back to pl.comp.programming | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-14 21:56 +0200
  Re: Tablica int i usuwanie duplikatów Adam Klobukowski <adamklobukowski@gmail.com> - 2015-09-14 13:50 -0700
  Re: Tablica int i usuwanie duplikatów witek <witek7205@gazeta.pl.invalid> - 2015-09-14 20:23 -0500
    Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-15 04:10 +0200
  Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-15 04:10 +0200
    Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-15 09:32 +0200
      Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-15 10:50 +0200
        Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-15 12:01 +0200
          Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-15 14:53 +0200
      Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-15 14:16 +0200
      Re: Tablica int i usuwanie duplikatów slawek <fake@fakeemail.com> - 2015-09-16 07:21 +0200
        Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 07:38 +0200
          Re: Tablica int i usuwanie duplikatów slawek <fake@fakeemail.com> - 2015-09-16 10:57 +0200
            Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 11:34 +0200
              Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-16 03:31 -0700
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 12:52 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-16 05:03 -0700
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 16:49 +0200
                Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-16 17:31 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 17:58 +0200
                Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-16 18:25 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 18:28 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-16 10:41 -0700
                Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-16 19:57 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 22:46 +0200
                Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-16 23:27 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-17 00:23 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-17 05:37 -0700
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-18 00:18 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-18 09:07 -0700
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-18 18:20 +0200
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-18 20:22 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-18 20:47 +0200
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-18 21:01 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-18 21:36 +0200
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-18 22:50 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 03:08 +0200
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-19 11:34 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 20:52 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-19 04:35 -0700
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-19 04:57 -0700
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-19 14:43 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-19 05:50 -0700
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-19 15:08 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-19 06:23 -0700
                Re: Tablica int i usuwanie duplikatów szemrany <szemrany@offline.off> - 2015-09-19 15:44 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 18:20 +0200
                Re: Tablica int i usuwanie duplikatów Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl> - 2015-09-21 08:09 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 18:13 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 18:10 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-19 09:58 -0700
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 20:44 +0200
                Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-22 04:43 -0700
              Re: Tablica int i usuwanie duplikatów slawek <fake@fakeemail.com> - 2015-09-17 08:12 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-17 15:14 +0200
                Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-17 16:37 +0200
                Re: Tablica int i usuwanie duplikatów slawek <fake@fakeemail.com> - 2015-09-18 07:22 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-18 15:15 +0200
                Re: Tablica int i usuwanie duplikatów slawek <fake@fakeemail.com> - 2015-09-19 20:45 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-19 21:01 +0200
                Re: Tablica int i usuwanie duplikatów slawek <fake@fakeemail.com> - 2015-09-20 16:27 +0200
                Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-20 17:14 +0200
          Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-16 11:05 +0200
            Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 11:40 +0200
              Re: Tablica int i usuwanie duplikatów "AK" <nobody@nowhere.com> - 2015-09-16 12:05 +0200
  Re: Tablica int i usuwanie duplikatów Sebastian Biały <heby@poczta.onet.pl> - 2015-09-16 19:11 +0200
    Re: Tablica int i usuwanie duplikatów "M.M." <mmarszik@gmail.com> - 2015-09-16 10:46 -0700
      Re: Tablica int i usuwanie duplikatów bartekltg <bartekltg@gmail.com> - 2015-09-16 19:55 +0200

csiph-web