根据cppreference.com,C++ STL排序算法的复杂度如下:
然而,这似乎意味着,你可以使用
sort
: O(N log(N))
partial_sort
: "大约" O(N log(M)),其中 M 是 distance(middle-first)
nth_element
: "平均" O(N)然而,这似乎意味着,你可以使用
nth_element
然后对第一个范围进行排序,以给出总体复杂度为 O(N + M log(M)),这比 O(N log(M)) 稍好一些。这是否真实?我最好避免使用partial_sort
吗?