У меня есть массив, содержащий имена предметов.Я хочу дать пользователю возможность создавать элементы без указания их имени, поэтому моя программа должна будет предоставить уникальное имя по умолчанию, например «Элемент 1».
Проблема заключается в том, что имя должно быть уникальнымпоэтому я должен проверить весь массив на это имя по умолчанию, и если есть элемент с таким же именем, я должен изменить имя на «Элемент 2» и так далее, пока не найду доступное имя.
Очевидное решение будет примерно таким:
String name = "Item ";
for (int i = 0; !isAvailable(name + i) ; i++);
Моя проблема с этим алгоритмом заключается в том, что он работает на O (N ^ 2).
Интересно,Существует известный (или новый) более эффективный алгоритм для решения этого случая.
Другими словами, мой вопрос заключается в следующем: существует ли какой-либо алгоритм, который находит первое большее, чем нулевое число, которое НЕ существует в данном массиве, и работает с меньшим, чем N ^ 2?