eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingminmax(a,b,c)Re: minmax(a,b,c)
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: bartekltg <b...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: minmax(a,b,c)
    Date: Wed, 04 Dec 2013 18:55:37 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 52
    Message-ID: <l7nqcc$q5f$1@node2.news.atman.pl>
    References: <5...@g...com>
    NNTP-Posting-Host: 89-76-71-155.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1386179788 26799 89.76.71.155 (4 Dec 2013 17:56:28 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 4 Dec 2013 17:56:28 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
    Thunderbird/24.1.1
    In-Reply-To: <5...@g...com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:204748
    [ ukryj nagłówki ]

    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.

    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: