Я нашел две статьи в Интернете:Структура данных - Большая O доступа и индексации. Что они на самом деле означают?
Что меня смущает это термины Индексация и доступа они используют. Они имеют в виду одно и то же?
Возьмите массив как пример:
Первый говорит Big O доступа является O (1). Второй говорит, что Big O индексации - O (1). Поэтому я предполагаю, что оба они говорят, указав индекс x
, вы можете получить значение array[x]
в O (1).
Возьмите Hash Table в качестве примера:
Первый говорит Big O доступа является N/A. Я думаю, что это связано с тем, что с помощью Hash Table вы делаете только с помощью ключа. Вы не получаете значение по индексу. Но второе говорит, что Big O индексации - O (1). Может быть, это относится к на этот раз?
Теперь возьмите бинарное дерево как пример:
Первый: Доступ O (LogN). Второе: индексирование - O (logN).
Что?
Итак, теперь они оба относятся к , адресующим? Вы не можете получить значение из двоичного дерева по индексу, не так ли?
Пожалуйста, помогите мне получить разъяснения. Благодаря!
Я думаю, что доступ и индексирование на самом деле не имеют фиксированных определений в ваших статьях. Однако поиск может быть более четко определен: найти элемент, если он существует, который соответствует определенному условию. Вероятно, не так важно беспокоиться о точной терминологии, чем понимать, что может сделать каждая структура данных. – Bernard