У меня есть отсортированный массив ArrayList целых чисел. Теперь у меня есть новое целое число для вставки в ArrayList. Это новое целое число должно быть вставлено в соответствующее положение, чтобы сохранить ArrayList в отсортированном порядке.Найти местоположение вставки
Я могу просто добавить целое число, а затем отсортировать его с помощью Collections.sort (ArrayList), но поскольку ArrayList слишком велик, этот вид занимает много времени, и мне нужно вставить много раз, поэтому я не хочу заканчивать сортировка несколько раз, что будет съедать мое время.
Collections.sort() имеет O (nlogn) (использует mergeSort).
Могу ли я иметь что-то меньшее, чем занятно, или я могу вручную найти позицию для вставки, которая занимает наименьшее время?
Время имеет высокий приоритет.
Заранее спасибо :)
Я собирался предложить то же самое, на самом деле, но я не уверен если мы что-то неправильно читаем в вопросе ... – icedwater
Спасибо. Это неплохая работа, которая составляет 170 секунд до 115, но мне нужно всего лишь 5 секунд. Так что все более эффективно. ?? – Sravan2023
Вы можете найти место, где элемент должен быть вставлен с помощью 'двоичного поиска' в' O (log N) 'complex – Prateek