Я бы сказал, давайте проверим это! :)
Я пытался с помощью быстрой сортировки, но сортировка массива с почти быстрой сортировкой ... ну, не очень хорошая идея. Я попробовал модифицированную, обрезав 7 элементов и используя для этого сортировку вставок. Все-таки ужасные показатели. Я переключился на сортировку слиянием. Для сортировки может потребоваться достаточно много памяти (она не на месте), но производительность на отсортированных массивах намного выше и почти идентична на случайных (первоначальная сортировка заняла почти одинаковое время для обеих, быстрая сортировка была лишь немного быстрее ).
Это уже показывает одну вещь: ответ на ваши вопросы сильно зависит от алгоритма сортировки, который вы используете. Если он будет иметь низкую производительность в почти отсортированных списках, вставка в нужную позицию будет намного быстрее, чем добавление в конце, а затем повторная сортировка; и сортировка слиянием может не подойти вам, поскольку может потребоваться слишком много внешней памяти, если список огромен. Кстати, я использовал собственную реализацию сортировки слиянием, которая использует только половину внешней памяти для простой реализации (которая требует столько же внешней памяти, сколько и сам размер массива).
Если сортировка слиянием не является опцией, а быстрая сортировка не является опцией, лучшей альтернативой, вероятно, является сортировка кучи.
Мои результаты таковы: добавление новых элементов просто в конце, а затем повторная сортировка массива происходит на несколько величин быстрее, чем вставка их в правильное положение. Однако в моем исходном массиве было 10 млн. Элементов (отсортировано), и я добавлял еще один (не отсортированный). Поэтому, если вы добавите 10 элементов в массив из 10 миллионов, их правильная вставка будет намного быстрее, чем повторная сортировка всего. Таким образом, ответ на ваш вопрос также зависит от размера исходного (отсортированного) массива и количества новых элементов, которые вы хотите добавить в него.