2012-12-30 15 views
8

Quicksort przewyższa w praktyce Heapsort. Mergesort jest jedynym stabilnym z 3 (w prostych implementacjach wanilii). Więc jest to albo quicksort, albo mergesort, który zostanie użyty w zależności od sytuacji (lokalny w pamięci lub zewnętrzne sortowanie itp.).Czy heapsort był kiedykolwiek używany w praktyce?

Czy istnieje przypadek, w którym struktura danych sterty jest rzeczywiście używana do sortowania ? Bez względu na to, jak bardzo "Google" lub staram się wymyślić aplikacje, prawie zawsze wybiera się scalanie/szybkie sortowanie przez heapsort. Nigdy nie spotkałem się z przypadkiem, w którym sortowanie sterty jest rzeczywiście wykorzystywane w moim życiu zawodowym. Co właściwie byłoby dobrym przypadkiem dla heaportu w praktyce (jeśli w ogóle), z ciekawości?

+3

To jest bardzo interesujące pytanie, proszę zostaw komentarz, dlaczego powinien on być zamknięty. –

+0

Proszę podać powód głosowania na "zamknięcie" pytania. To jest uzasadnione pytanie programistyczne, IMHO. – PhD

+0

Ponieważ nie jest to pytanie z "poprawną" odpowiedzią, powinno to być co najwyżej wiki społeczności. Dotychczasowe głosowanie brzmiało: "W tej chwili pytanie to nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub konkretną wiedzą, ale to pytanie prawdopodobnie zachęci do debaty, argumenty, głosowanie lub rozszerzona dyskusja. " Ważna jest tu część po "ale". – Donnie

Odpowiedz

5

Niektóre świadczenia od szczytu głowy (zmieni tę listę po tym, jak zrobić kilka badań.

  • Prawie posortowane zestawy korzystania z sortowaniem przez sortowanie przez kopcowanie
  • środowisk space-świadomy często wolą o (1) złożoność przestrzeni sortowanie przez kopcowanie. Pomyśl systemów wbudowanych.
  • Ogromne zbiory danych korzystają z gwarantowanej czas o (nlog n) działa w przeciwieństwie do prawdopodobnego Bett er czas działania quicksort. Pomyśl o sprawach medycznych, kosmicznych, ratunkowych itp.
+1

Zgadzam się na drugi punkt systemów wbudowanych. To wydaje się obiecującym podejściem. Ale w przypadku prawie posortowanych zestawów, sortowanie z wstawkami przewyższałoby wartość heapsortu, IMO. Jeśli chodzi o punkt 3, nawet mergesort ma tę gwarancję, prowadząc do wycofania się z niej zamiast heapsortu. – PhD

+0

@PhD: http://dl.acm.org/citation.cfm?id=359026 - To prawda. Pamiętam gdzieś gdzieś czytałem. –

Powiązane problemy