eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingQuciksort a najmniejsza liczba odpytywańQuciksort a najmniejsza liczba odpytywań
  • X-Received: by 2002:a05:620a:13d1:: with SMTP id g17mr22424734qkl.313.1574610154135;
    Sun, 24 Nov 2019 07:42:34 -0800 (PST)
    X-Received: by 2002:a05:620a:13d1:: with SMTP id g17mr22424734qkl.313.1574610154135;
    Sun, 24 Nov 2019 07:42:34 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin1!goblin.st
    u.neva.ru!g89no5972682qtd.0!news-out.google.com!g53ni1038qtg.0!nntp.google.com!
    g89no5972670qtd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-fo
    r-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 24 Nov 2019 07:42:33 -0800 (PST)
    In-Reply-To: <5dda4431$0$31099$65785112@news.neostrada.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.25.207.226;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 83.25.207.226
    References: <5dda4431$0$31099$65785112@news.neostrada.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <5...@g...com>
    Subject: Quciksort a najmniejsza liczba odpytywań
    From: g...@g...com
    Injection-Date: Sun, 24 Nov 2019 15:42:34 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:214480
    [ ukryj nagłówki ]

    Dla prostoty weźmy Haskellową implementację (pseudo) quicksorta:

    qsort [] = []
    qsort (h:t) = (qsort [x|x<-t, x<h]) \
    ++[h]++(qsort [x|x<-t, x>=h])

    Jeżeli tylko
    x >= y <=> ~(x < y)
    i jeżeli każde wywołanie x < y daje tę samą wartość, to lewa i prawa strona listy
    będzie każdorazowo malała przy kolejnych wywołaniach rekurencyjnych (bo są rozłączne,
    i wyciągamy z listy jeden element, h).
    Dlatego brak przechodniości operatora < nie powinna mieć wpływu na to, czy algorytm
    się zakończy.

    W prawdziwym quicksorcie jest lepiej, bo tam wywołujesz funkcję porównującą tylko raz
    na iterację dla każdego elementu, i przerzucasz elementy na lewo i prawo od pivota.
    Ale schemat rekursji jest dokładnie taki sam.

    Rezultat będzie oczywiście niezdefiniowany, ale algorytm się zakończy.

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: