[C++] Mergesort z stdlib czy sort z STL?

0

Mam kilka pytań, może ktoś już to sprawdzał.

  1. Czy mergesort zdefiniowany w stdlib.h w C w systemach uniksowych, występuje również np. w Borland C pod DOS?
  2. Jeżeli odpowiedź na pierwsze pytanie jest pozytywna to: co jest szybsze
  • mergesort z stdlib
  • heapsort z stdlib
  • sort z STL-a

I nie chodzi mi o złożoność, bo każde z tych ma O(n log n), ale faktyczną wydajność.
Np. wiadomym jest, że zazwyczaj mergesort jest szybszy od heapsort na współczesnych komputerach, ze względu na wykorzystanie lokalności danych (cześć sąsiadujących danych przechowywana jest cache).

Nadmiar wykorzystywanej pamięci w tym momencie nie ma dla mnie znaczenia.

Dziękuję za odpowiedzi.

0

Ad1. Nie ma, ale w stl-u masz stable_sort (mergesort) i partial_sort (heapsort)
Ad2. Z tego co oferuje stl to wybralbym sort (introsort)

0

I tak też zrobiłem :)
Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1