2012-01-26 2 views

ответ

0

Приятно подумать, но это все еще не улучшает работу по поиску. Независимо от того, сколько указателей у вас есть в разных частях списка, вам все равно придется анализировать каждый элемент в списке. Тем не менее, вы можете - два потока искать каждую половину списка, делая операцию в два раза быстрее в теории.

+0

Добавление потоков может улучшить время работы на некоторых процессорах, но это не меняет сложность алгоритма, которая остается O (N). –

+0

@Brian, правда правда. –

+0

, поэтому наши сравнения остаются эффективными одинаковыми, даже если мы сократили количество времени, которое мы прокручиваем по списку – Aks

0

Только в случае, если данные связанного списка отсортированы. В противном случае, как уже сказано в другом ответе.

+0

. Вы подразумеваете бинарный поиск? Разве бинарный поиск в списках неэффективен? – Aks

+0

Не совсем бинарный поиск. Но вы можете просто уменьшить проблему пополам, если ваши данные отсортированы (учитывая, что у вас уже есть средний указатель) – Aamir

1

Да, это может уменьшить сложность с постоянным коэффициентом 2, если у вас есть какой-то способ определить, начинать ли с начала или середины списка (как правило, но необязательно, сортируемый список). Это, однако, постоянный фактор, поэтому с точки зрения сложности большого O это не имеет значения.

Чтобы иметь отношение к сложностям с большими значениями, вам требуется более чем постоянное изменение коэффициента. Если, например, у вас был указатель на деление пополам каждой половины, и снова каждая половина этого и т. Д., Вы бы закончили логарифмическую сложность вместо линейной - и вы бы превратили свой «связанный список» в (уже хорошо известное) резьбовое дерево.

0

Это было бы, но асимптотически было бы все равно. Тем не менее, есть структура данных, которая использует эту идею, она называется списком пропуска. Список пропусков - это связанный список, в котором некоторые узлы имеют больше указателей, которые в каком-то смысле указывают на середину остального списка. Идея хорошо проиллюстрирована на this image. Эта структура обычно имеет логарифмическую вставку для поиска и удаления.

Смежные вопросы