eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytmiczny problem lamera... :-)Algorytmiczny problem lamera... :-)
  • Data: 2014-10-05 21:26:42
    Temat: Algorytmiczny problem lamera... :-)
    Od: m...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

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

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: