eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingTablica int i usuwanie duplikatów › Re: Tablica int i usuwanie duplikatów
  • Data: 2015-09-18 21:01:40
    Temat: Re: Tablica int i usuwanie duplikatów
    Od: szemrany <s...@o...off> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: