inplace_merge
template < class BidirectionalRange >
BidirectionalRange &
inplace_merge ( BidirectionalRange & rng ,
typename range_iterator < BidirectionalRange >:: type middle );
template < class BidirectionalRange >
const BidirectionalRange &
inplace_merge ( const BidirectionalRange & rng ,
typename range_iterator < const BidirectionalRange >:: type middle );
template < class BidirectionalRange , class BinaryPredicate >
BidirectionalRange &
inplace_merge ( BidirectionalRange & rng ,
typename range_iterator < BidirectionalRange >:: type middle ,
BinaryPredicate pred );
template < class BidirectionalRange , class BinaryPredicate >
const BidirectionalRange &
inplace_merge ( const BidirectionalRange & rng ,
typename range_iterator < const BidirectionalRange >:: type middle ,
BinaryPredicate pred );
inplace_merge Сочетает два последовательных отсортированных диапазона[ начинается] ( ) , середина и[ середина , конец ( рнг) ) в едином сортировочном диапазоне[ начинается] ( ) ), конец ( рнг) ) . То есть начинается с диапазона[ начинается] ( ) ), конец ( рнг) ) , которая состоит из двух частей, каждая из которых находится в восходящем порядке, и перестраивает ее таким образом, что весь диапазон находится в восходящем порядке.inplace_merge является стабильным, что означает сохранение относительного порядка элементов в пределах каждого входного диапазона.
Defined in the header file boost / range / algorithm / inplace_merge . hpp
For the non-predicate version:
Двунаправленный диапазон является моделью концепцииДвунаправленный диапазон .Двунаправленный диапазон изменчив.дальность_значение < Двунаправленный диапазон >:: тип является модельюМенее сопоставимая концепция Порядок на объектахrange_type < Двунаправленный диапазон >:: тип являетсястрогим слабым упорядочением , как определено вСравнительная концепция . Для предиката версия: *Двунаправленный диапазон является модельюДвунаправленный диапазон Концепция. *Двунаправленный диапазон является изменчивым. *Бинарный прогноз является модельюStrictWeakOrderingConcept . *Двунаправленный диапазон Тип значения конвертируемый в обаБинарное Предсказание типы аргументов.
средняя находится в диапазонеринг .начать рнг , середина находится в восходящем порядке. То есть для каждой пары смежных элементовx , y ,у < x являетсяложным .[ середина , конец [ ринг ] находится в восходящем порядке. То есть для каждой пары смежных элементовx , у ] ,у < x являетсяложным .средняя находится в диапазонеринг .начать ринг , середина находится в порядке возрастания. То есть для каждой пары смежных элементовx , y ,pred у , x == ложный .[ середина , конец [ ринг ] находится в восходящем порядке. То есть для каждой пары смежных элементовx , y ,pred у , x == ложный .
Worst case: O ( N log ( N ))
Статья inplace_merge раздела Chapter 1. Range 2.0 Mutating algorithms может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Mutating algorithms ::