Jak w tytule - jaka jest złożoność pamięci std::sort()
i std::sort_heap()
? (Ten ostatni wymaga std::make_heap()
więc chciałbym wiedzieć, jego złożoność pamięci, jak również.)Jaka jest złożoność pamięci std :: sort() i std :: sort_heap()?
Próbowałem wyszukiwanie na tych stronach: http://www.cplusplus.com/reference/http://en.cppreference.com/w/ ale albo brakowało mi go albo oni tylko wspomnieć złożoność czasową. Czy złożoność pamięci wspomnianych funkcji jest określona w dowolnym miejscu (w standardzie C++ lub innym dokumencie)? A może to zależy od wdrożenia?
Wszystkie trzy algorytmy są na miejscu, tj. Dodatkowa pamięć to O (1). – user515430
Zgodnie z tym: http://stackoverflow.com/questions/1840121/which-type-sorting-is-used-in-the-function-sort 'std :: sort()' może używać 'introsorta' który z kolei używa 'quicksort', który nie jest na miejscu (stos wywołań rekursywnych). – NPS
Quicksort jest bardzo na miejscu. Dane nigdy nie są przenoszone do zewnętrznego magazynu danych. Dane nigdy nie są umieszczane na stosie. Parametry dotyczące miejsca w pojemniku można umieścić na stosie. Można spierać się o to, czy pamięć jest O (1), ale nie o to, że jest w miejscu. – user515430