Я стараюсь в основном понять аргументы за большой о и омега вставляя новый элемент в кучу. Я знаю, что могу найти ответы онлайн, но мне очень нравится иметь полное понимание, а не просто находить ответы онлайн и просто запоминать вслепую.Сложность времени вставки в кучу
Так, например, если мы имеем следующую Heap (Представлял в формате массива)
[8,6,7,3,5,3,4,1,2]
Если мы решили вставить новый элемент «4» наш массив будет выглядеть, как это сейчас
[8,6,7,3,5,3,4,1,2,4]
Он будет помещен в индекс 9, и поскольку это 0-й индексный массив, его родителем будет индекс 4, который является элементом 5. В этом случае нам не нужно ничего делать, потому что 4 - это < 5 и не нарушает двоичную кучу имущество. Так что лучший пример OMEGA (1).
Однако, если новый элемент, который мы вставляем, равен 100, тогда нам нужно будет вызвать функцию max-heapify, которая имеет время работы O (Log n), и поэтому в худшем случае вставка нового элемента в кучу принимает O (Log n) ,
Может кто-то исправить меня, если я ошибаюсь, потому что я не уверен, что мое понимание или рассуждение 100%?
Да, вы правы. Но знаете ли вы, почему вставляете в кучу O (log n) и что это значит? – libik
Это поможет, если вы сможете объяснить, у меня может не быть правильного понимания ... – user1010101