Эффективность последовательного поиска
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Эффективность любого поиска может оцениваться по количеству сравнений C аргумента поиска с ключами таблицы данных. Чем меньше количество сравнений, тем эффективнее алгоритм поиска.

Эффективность последовательного поиска в массиве:

 

C = 1  n , C = ( n + 1)/2.

 

Эффективность последовательного поиска в списке - то же самое. Хотя по количеству сравнений поиск в списке и в массиве имеет одинаковую эффективность, организация данных в виде массива и списка имеет свои достоинства и недостатки. Целью поиска является выполнение следующих операций:

1) Найденную запись считать.

2) При отсутствии записи произвести ее вставку в таблицу.

3) Найденную запись удалить.

Первая операция (собственно поиск) занимает для них одно время. Вторая и третья операции для списочной структуры более эффективна (т. к. у массивов надо сдвигать элементы).

Если k - число передвижений элементов в массиве, то k = (n + 1)/2.

 

5.4 Эффективность индексно-последовательного поиска

 

Если считать равновероятным появление всех случаев, то эффективность поиска можно рассчитать следующим образом:

Введем обозначения: 

n – размер основной таблицы;

m - размер индексной таблицы; 

p - размер шага;

m = n / p;

Тогда количество сравнений C считается так:

С = ( m +1)/2 + ( p +1)/2 = ( n / p +1)/2 + ( p +1)/2 = n /2 p + p /2+1

 

Продифференцируем C по p и приравняем производную нулю:

 

dC/dp=(d/dp) (n/2p+p/2+1)= - n /2 p2 + 1/2 = 0

Отсюда

p 2 = n ;

Подставив ропт в выражение для C, получим следующее количество сравнений:

 

C =  +1

 

Порядок эффективности индексно-последовательного поиска O ( ).

 

Методы оптимизации поиска

 

Всегда можно говорить о некотором значении вероятности поиска того или иного элемента в таблице. Считаем, что в таблице данный элемент существует. Тогда вся таблица поиска может быть представлена как система с дискретными состояниями, а вероятность нахождения там искомого элемента - это вероятность p(i) i - го состояния системы.

 

 

 Количество сравнений при поиске в таблице, представленной как дискретная система, представляет собой математическое ожидание значения дискретной случайной величины, определяемой вероятностями состояний и номерами состояний системы.

 

Z = C =1 p (1)+2 p (2)+3 p (3)+…+ np ( n )

Желательно, чтобы p(1)  p(2)  p(3)  …  p(n).

Это минимизирует количество сравнений, то есть увеличивает эффективность. Так как последовательный поиск начинается с первого элемента, то на это место надо поставить элемент, к которому чаще всего обращаются (с наибольшей вероятностью поиска).

Наиболее часто используются два основных способа автономного переупорядочивания таблиц поиска. Рассмотрим их на примере односвязных списков.

 

Дата: 2019-12-10, просмотров: 257.