eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingTablica int i usuwanie duplikatów › Re: Tablica int i usuwanie duplikatów
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neost
    rada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: szemrany <s...@o...off>
    Subject: Re: Tablica int i usuwanie duplikatów
    Newsgroups: pl.comp.programming
    User-Agent: 40tude_Dialog/2.0.15.84
    MIME-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    Sender: n...@p...no
    References: <q1dqtorkbx55$.vtwhsmj03gkt$.dlg@40tude.net>
    <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>
    <1...@g...com>
    <mtfe8g$7cu$1@node2.news.atman.pl>
    <a...@g...com>
    <1...@4...net>
    <mthm8f$p6g$1@node1.news.atman.pl>
    Date: Fri, 18 Sep 2015 21:01:40 +0200
    Message-ID: <1...@4...net>
    Lines: 75
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 89-71-60-55.dynamic.chello.pl
    X-Trace: 1442602900 unt-rea-b-01.news.neostrada.pl 8373 89.71.60.55:13836
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:208352
    [ ukryj nagłówki ]

    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
    kontenerów jak C++. Muszę część rzeczy wydłubać sam.

    > 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.

    >> 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
    dużych tablicach względem algorytmu naiwnego z pętlami to tej wersji też
    będę używał.
    Na razie węszę i w wolnych chwilach dopisuję kolejne kawałki kodu.

    --
    howgh
    szemrany
    "Trzeba z żywymi naprzód iść, po życie sięgać nowe,
    a nie w uwiędłych laurów liść z uporem stroić głowę"

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: