eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingminmax(a,b,c)Re: minmax(a,b,c)
  • X-Received: by 10.49.74.134 with SMTP id t6mr99615qev.14.1386181749164; Wed, 04 Dec
    2013 10:29:09 -0800 (PST)
    X-Received: by 10.49.74.134 with SMTP id t6mr99615qev.14.1386181749164; Wed, 04 Dec
    2013 10:29:09 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!news.glorb.com!p15no4162618qaj.0!news-out.g
    oogle.com!9ni708qaf.0!nntp.google.com!p15no4162606qaj.0!postnews.google.com!gle
    groupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 4 Dec 2013 10:29:08 -0800 (PST)
    In-Reply-To: <l7nqcc$q5f$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.61.131.25;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 31.61.131.25
    References: <5...@g...com>
    <l7nqcc$q5f$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <5...@g...com>
    Subject: Re: minmax(a,b,c)
    From: firr <p...@g...com>
    Injection-Date: Wed, 04 Dec 2013 18:29:09 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:204749
    [ ukryj nagłówki ]

    W dniu środa, 4 grudnia 2013 18:55:37 UTC+1 użytkownik bartekltg napisał:
    > W dniu 2013-12-04 18:36, firr pisze:
    >
    > > porzebuje kodu ktory dla zadanych trzech intow
    >
    > >
    >
    > > int a = 4; int b = 19; int c = 2; ....
    >
    > >
    >
    > > int min = ... int max = ...
    >
    > >
    >
    > > zwroci najmniejsza i najwieksza wartosc przy jak najmniejszej liczbie
    >
    > > porownan (tak zeby szybko dzialalo no jest odpalane w petli)
    >
    > >
    >
    > > int min = min(min(a,b),c); int max = max(max(a,b),c);
    >
    > >
    >
    >
    >
    > Przecież to proste.
    >
    >
    >
    > int m,M;
    >
    >
    >
    > if (a>b)
    >
    > {
    >
    > M=a;
    >
    > m=b;
    >
    > }
    >
    > else
    >
    > {
    >
    > M=b;
    >
    > m=a;
    >
    > }
    >
    >
    >
    > if (c>M)
    >
    > M=c;
    >
    > else if (c<m) m=c;
    >
    >
    >
    > > chyab nie jest optymalne, zreszta chyba wolalbym uniknac systemowych
    >
    > > min() i max() bo zawsze boje sie
    >
    > > ze sa wolne - nie wiem czy slusznie
    >
    >
    >
    > Niesłusznie. Są szybkie.
    >

    moze sa szybkie a moze nie sa - trzebaby chyba zawsze sprawdzac :c przy tym chyba
    szybsze od
    napisania tego ifem z reki nie są ? min to
    logicznie zupelnie inna instrukcja niz if
    (teoretycznie chyba powinna byc tańsza -
    czesto mowi sie ze branche sa drogie)

    dzis mnie glowa boli i nie moge sie skupic,
    co do tej wersji to chyba tak tyle ze napisalem
    wersje rozwinietą

    if(a<b)
    {
    if(a<c)
    {
    min = a;

    if(b<c)
    {
    max = c;
    }
    else
    {
    max = b;
    }
    }
    else //a > c & a<b
    {
    min = c;
    max = b;
    }
    }
    else //a>b
    {
    if(a>c)
    {
    max = a;

    if(b>c)
    {
    min = c;
    }
    else
    {
    min = b;
    }


    }
    else //a>b & a<c
    {
    min = b;
    max = c;
    }

    }

    ale ciagle nie wiem czy nie daloby sie moze
    tego jakos jeszcze podoptymalizowac, przepisywanie
    na asma by cos dalo?



    >
    >
    > Ale przy jednoczesnym wyznaczaniu min i max da się
    >
    > to zrobić szybciej, jeśli robi się jednocześnie.
    >
    > Tak jak powyżej, mamy maksymalnie 3 porównania, (średnio
    >
    > 2+2/3(?)) a wyznaczając osobno min i max mielibyśmy 4.
    >
    >
    >
    >
    >
    > W c++11 mamy funkcję minmax, zwracającą uporządkowaną parę
    >
    > oraz minmax_element, działający na kontenerze.
    >
    >
    >
    > Szukając naraz min i max w tablicy n elementów, wykonuje
    >
    > się 1.5n porównań, zamiast 2n.
    >
    >
    >
    > pzdr
    >
    > bartekltg

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: