std::partial_sort
![]() |
ÐÑа ÑÑÑаниÑа бÑла пеÑеведена авÑомаÑиÑеÑки Ñ Ð°Ð½Ð³Ð»Ð¸Ð¹Ñкой веÑÑии вики иÑполÑзÑÑ ÐеÑеводÑик Google. ÐеÑевод Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¾Ñибки и ÑÑÑаннÑе ÑоÑмÑлиÑовки. ÐаведиÑе кÑÑÑÐ¾Ñ Ð½Ð° ÑекÑÑ, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¾Ñигинал. ЩÑлкниÑе здеÑÑ, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð°Ð½Ð³Ð»Ð¸Ð¹ÑкÑÑ Ð²ÐµÑÑÐ¸Ñ ÑÑой ÑÑÑаниÑÑ. (ÐÑ Ð¼Ð¾Ð¶ÐµÑе помоÑÑ Ð² иÑпÑавлении оÑибок и ÑлÑÑÑении пеÑевода. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий пеÑейдиÑе по ÑÑÑлке.) |
ÐпÑеделено в заголовоÑном Ñайле <algorithm>
|
||
template< class RandomIt > void partial_sort( RandomIt first, RandomIt middle, RandomIt last ); |
(1) | |
template< class RandomIt, class Compare > void partial_sort( RandomIt first, RandomIt middle, RandomIt last, Compare comp ); |
(2) | |
СоÑÑиÑÑÐµÑ ÑаÑÑÑ ÑлеменÑов в диапазоне [first, last)
в поÑÑдке возÑаÑÑаниÑ. ÐеÑвÑе middle - first оÑÑоÑÑиÑованнÑе ÑлеменÑÑ Ð½Ð°Ñ
одÑÑÑÑ Ð² диапазоне [first, middle)
. Ðе гаÑанÑиÑÑеÑÑÑ ÑоÑ
Ñанение поÑÑдка ÑавнÑÑ
ÑлеменÑов. ÐоÑÑдок ÑлеменÑов в диапазоне [middle, last)
не опÑеделен. ÐеÑвÑй ваÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑзÑÐµÑ operator< Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑлеменÑов, вÑоÑÐ°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¸ÑполÑзÑÐµÑ Ð¿ÐµÑеданнÑÑ ÑÑнкÑÐ¸Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ comp
.
СодеÑжание |
[пÑавиÑÑ] ÐаÑамеÑÑÑ
first, last | â | диапазон ÑлеменÑов Ð´Ð»Ñ ÑоÑÑиÑовки
ÐÑигинал: the range of elements to sort ТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. |
comp | â | ÑÑнкÑÐ¸Ñ ÑÑавнениÑ, возвÑаÑаÑÑÐ°Ñ âtrue еÑли пеÑвÑй аÑгÑÐ¼ÐµÐ½Ñ Ð¼ÐµÐ½ÑÑе вÑоÑого. СигнаÑÑÑа ÑÑнкÑии ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑквиваленÑна ÑледÑÑÑей: bool cmp(const Type1 &a, const Type2 &b); СигнаÑÑÑа на обÑзана ÑодеÑжаÑÑ const &, однако, ÑÑнкÑÐ¸Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð¿ÐµÑеданнÑе обÑекÑÑ. |
ТÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº Ñипам | ||
-RandomIt должен ÑооÑвеÑÑÑвоваÑÑ ÑÑебованиÑм ValueSwappable и RandomAccessIterator .
| ||
-The type of dereferenced RandomIt must meet the requirements of MoveAssignable and MoveConstructible .
|
[пÑавиÑÑ] ÐозвÑаÑаемое знаÑение
(ÐеÑ)
[пÑавиÑÑ] СложноÑÑÑ
cmp
. ÐÑли дополниÑелÑÐ½Ð°Ñ Ð¿Ð°Ð¼ÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпна, Ñо ÑложноÑÑÑ O(N·log(N))cmp
. If additional memory is available, then the complexity is O(N·log(N))ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
[пÑавиÑÑ] ÐÑимеÑ
#include <algorithm> #include <functional> #include <array> #include <iostream> int main() { std::array<int, 10> s{5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; std::partial_sort(s.begin(), s.begin() + 3, s.end()); for (int a : s) { std::cout << a << " "; } }
ÐÑвод:
0 1 2 7 8 6 5 9 4 3
[пÑавиÑÑ] См. Ñакже
копиÑÑÐµÑ Ð¸ ÑаÑÑиÑно ÑоÑÑиÑÑÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ ÑлеменÑов (Ñаблон ÑÑнкÑии) | |
ÑоÑÑиÑÑÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ ÑлеменÑов, ÑоÑ
ÑанÑÑ Ð¿Ð¾ÑÑдок Ð¼ÐµÐ¶Ð´Ñ ÑавнÑми ÑлеменÑами (Ñаблон ÑÑнкÑии) | |
ÑоÑÑиÑÑÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ в поÑÑдке возÑаÑÑÐ°Ð½Ð¸Ñ (Ñаблон ÑÑнкÑии) |