eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytmiczny problem lamera... :-)Re: Algorytmiczny problem lamera... :-)
  • Data: 2014-10-05 22:13:08
    Temat: Re: Algorytmiczny problem lamera... :-)
    Od: A.L. <a...@a...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Sun, 5 Oct 2014 12:26:42 -0700 (PDT), m...@g...com wrote:

    >Pomóżcie, bo spać nie mogę.
    >
    >Po paru latach przerwy dopadła mnie konieczność napisania programu.
    >Problem był dość banalny: Na wejściu dostajemy paręnaście tysięcy list składających
    się z kilkudziesięciu elementów (stringów), listy są posortowane, elementy list mogą
    się powtarzać i robią to nagminnie - zadaniem programu jest "odfiltrowanie"
    powtórzonych elementów i zapisanie tak wyczyszczonych list do pliku.
    >
    >Zadanie jest już rozwiązane, ale gnębi mnie mało elegancki sposób jego rozwiązania.
    >Kod "filtrujący":
    >
    >
    >c = 1; // A)
    >
    >for (i = 0; i < nElem; i++)
    >{
    > for (k = 0; k < i; k++)
    > {
    > c = strcmp(Tab[i], Tab[k]);
    > if (c == 0) // B)
    > break;
    > }
    > if (c != 0) // C)
    > MyOutFile << Tab[i] << ...
    >}
    >
    >
    >Pomijając kwestię optymalizacji dostępu do tablic i skorzystania ze "zbicia"
    powtarzających się elementów - jak to to ucywilizować?
    >Zestawienie instrukcji C i B, niestety, kłuje w oczy...
    >Tak samo, jak "sztuczna" instrukcja A.
    >
    >Da się coś z tym zrobić?
    >Jedyne, co mi przychodzi do głowy, to posłużenie się instrukcją goto, ale to - jak
    wiadomo - samo zło...

    Jak listy sa posortowane, to powtarzajace sie elementy sa jeden za
    drugim. Wystarczy wiec "jechac" po liscie z indeksem i, i porownywac
    element [i] z [i+1]. Jezeli sa takie same, usunac element [i+1].
    Reszta to szczegoy

    Jezeli listy sa nieduze, moana ja konwertowac do struktury Set, ktora
    jak wiadomo nie ma duplikatow, a potem Set z powrotem do listy jezeli
    potzrebne jest sortowanie

    A.L.

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: