Если у нас есть отсортированный массив, содержащий N элементов, и мы хотим выполнить N операций вставки, то какова должна быть временная сложность наихудшего случая наилучшего подхода?
Я думаю, что это должно быть O (N log (2N)), потому что мы можем вставить N элементов непосредственно в конец отсортированного массива. После всех вставок у нас будет 2N элементов, и мы можем выполнить стабильный алгоритм сортировки всего массива 2N, который займет O (2N log (2N)) ~ O (N log (2N))
Итак, всего = N вставок + сортировка = O (N + 2N log (2N)) = O (N log (2N))
Но везде, где я вижу связанную концепцию, она задается как O (N ^ 2), поскольку они сохраняют сортировку массива после каждой вставки, создавая пространство для каждой вставки между отсортированным массивом!
Мой подход неверен? Должны ли мы сохранять отсортированный массив после каждой вставки? Если да, то означает ли это, что «сохраняет структуру данных неизменной после каждой операции, а не делает ее неповрежденной после целой серии одной и той же операции». Правило действительно для всех структур данных?!