Как написать функцию для удаления элемента из массива за 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.

→ Ссылка