Как написать функцию для удаления элемента из массива за O(1)?
К примеру, имеется такой массив:
let library = [
{ id: "4", name: "Name1", author: "Max" },
{ id: "8", name: "Name3", author: "Liza" },
{ id: "3", name: "Name2", author: "Alex" },
{ id: "6", name: "Name2", author: "Ann" }
]
И соответственно функция удаления,
function deleteEl (id) {
}
она получает id элемента, который необходимо удалить. Если элемент с таким id находился в массиве вернуть true, иначе false.
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
Никак. Массив - непрерывный участок памяти, а значит при удалении элемента из него надо сдвинуть весь хвост, что даёт линейную асимптотику. За O(1) может работать только pop.