Рассмотрим элемент std::vector v из N и рассмотрим, что первые элементы N уже были отсортированы с помощью n < N и где (N-n)/N очень мало:

Существует ли разумный способ использования алгоритмов STL для сортировки этого вектора быстрее, чем с полным std::sort(std::begin(v), std::end(v))?
EDIT: пояснение: (N-n) несортированные элементы должны быть вставлены в правильное положение в пределах n первых уже отсортированных элементов.
EDIT2: вопрос с бонусом: и как найти n? (что соответствует первому несортированному элементу)