eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingKiedy qsort zaczyna źle działać?Re: Kiedy qsort zaczyna źle działać?
  • 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: Kiedy qsort zaczyna źle działać?
    Date: Wed, 15 Jul 2015 23:37:07 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 43
    Message-ID: <mo6jq3$u9f$1@node1.news.atman.pl>
    References: <mo6d72$n3b$1@node1.news.atman.pl> <mo6i8q$sld$1@node1.news.atman.pl>
    <mo6im9$cqj$1@node2.news.atman.pl>
    NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1436996227 31023 89.73.81.145 (15 Jul 2015 21:37:07 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 15 Jul 2015 21:37:07 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101
    Thunderbird/31.7.0
    In-Reply-To: <mo6im9$cqj$1@node2.news.atman.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:207853
    [ ukryj nagłówki ]

    On 15.07.2015 23:18, Borneq wrote:
    > W dniu 2015-07-15 o 23:10, bartekltg pisze:
    >> Dlatego sporo implementacji (w tym chyba wszystkie standardowe w c++)
    >> używają algorytmu introsort, który jest to quicksorttem,
    >> który w wywołaniach rekurencyjnych sprawdza głębokość rekurencji.
    >> Jeśli jest ona zbyt duża (tzn z jakiś powodów, jak bardzo złośliwe
    >> dane, ciagle źle trafiamy) podtablica traktowana jest heapsortem.
    >
    > Spotkałem się z przypadkiem zamiany quicksorta na metodę iteracyjną,
    > zamiast stosu używając lokalnej tablicy. Działał szybciej.

    W pewnym przypadkach i mnimalnie. Potrzebujesz dodatkowej pamięci.
    Chyba nawet w Cormenia było;-) Tworzy sie stos z wrzucanymi na niego
    elementami podziału.

    W ząden sposób nie zapobiega to przypadkowi złego działąnia qsorta.
    Wiec tablica musi mieć w praktyce długość rzędu długości danych.


    > Jeśli chodzi o sprawdzanie tej tablicy, to występuje to tak rzadko, że
    > zamiast sprawdzać za pomocą if, lepiej, zwłaszcza w Javie czekać na
    > wyjątek.


    Pomojając, że nie mam pojęćia, jak odnieść to co mówisz do
    quicksota bez stosu:

    Raczej tylko w javie. W niektórych jezykach 'skryptowych'
    sterowanie programem za pomocą wyjątków jest pobłogosławioną
    metodą, i twory nazwane tam wyjatkami są do tego przestosowane.
    Czy java jest jednym z nich, nie wiem, bardzo prawdopodobne.
    W innych językach jest to idiotyzm od strony logicnzej
    i wydajnościowej.

    A od siebie dodam:
    I czekać na cotygodniowe wywalanie się bazy danych;-)

    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: