eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytmiczny problem lamera... :-) › Algorytmiczny problem lamera... :-)
  • X-Received: by 10.140.101.235 with SMTP id u98mr326qge.22.1412537202163; Sun, 05 Oct
    2014 12:26:42 -0700 (PDT)
    X-Received: by 10.140.101.235 with SMTP id u98mr326qge.22.1412537202163; Sun, 05 Oct
    2014 12:26:42 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed4a.news.xs4all.n
    l!xs4all!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!dc1
    6no820646qab.1!news-out.google.com!i10ni60qaf.0!nntp.google.com!s7no701990qap.0
    !postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 5 Oct 2014 12:26:42 -0700 (PDT)
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=80.238.113.190;
    posting-account=FE4hoAoAAADKg8EtnA4bEyQiJf7iqAgV
    NNTP-Posting-Host: 80.238.113.190
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <1...@g...com>
    Subject: Algorytmiczny problem lamera... :-)
    From: m...@g...com
    Injection-Date: Sun, 05 Oct 2014 19:26:42 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Lines: 36
    Xref: news-archive.icm.edu.pl pl.comp.programming:206687
    [ ukryj 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: