Như trong tiêu đề - độ phức tạp của bộ nhớ là std::sort()
và std::sort_heap()
là gì? (Sau này đòi hỏi std::make_heap()
vì vậy tôi muốn biết sự phức tạp bộ nhớ của nó là tốt.)Độ phức tạp của bộ nhớ của std :: sort() và std :: sort_heap() là gì?
Tôi đã thử tìm kiếm trên các trang web này: http://www.cplusplus.com/reference/http://en.cppreference.com/w/ nhưng một trong hai tôi bị mất nó hoặc họ chỉ đề cập đến mức độ phức tạp thời gian. Độ phức tạp của bộ nhớ của các hàm được chỉ định ở bất kỳ đâu (trong tiêu chuẩn C++ hay một số tài liệu khác)? Hoặc có lẽ đó là thực hiện phụ thuộc?
Tất cả ba thuật toán đều có tại chỗ, nghĩa là bộ nhớ bổ sung là O (1). – user515430
Theo điều này: http://stackoverflow.com/questions/1840121/which-type-of-sorting-is-used-in-the-function-sort 'std :: sort()' có thể đang sử dụng 'introsort' mà lần lượt sử dụng 'quicksort' mà không phải là tại chỗ (stack cho các cuộc gọi đệ quy). – NPS
Quicksort là rất nhiều tại chỗ. Dữ liệu không bao giờ được chuyển sang lưu trữ dữ liệu ngoài. Dữ liệu không bao giờ được đặt trên ngăn xếp. Các thông số về nơi bạn đang ở trong vùng chứa có thể được đặt trên ngăn xếp. Bạn có thể tranh luận về việc liệu bộ nhớ là O (1), nhưng không phải là về tại chỗ. – user515430