Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Последовательный поиск





Нахождение информации в неотсортированной структуре данных, например в массиве, требует применения последовательного поиска.

Последовательный (или линейный) поиск – наиболее просто реализуемый метод поиска.

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

Примеры последовательного поиска с циклами for и while.

 

Программа линейного поиска на языке "Паскаль" var nums: array [0..N] of real; function search_s1(item: ^real; n: integer; key: real):integer; var i: integer; begin for i:= 0 to N do if key = item[i] then begin search_s1:= i; break end else search_s1:= -1 end; function search_s2(item: ^real; n: integer; key: real):integer; var i: integer; begin i:=0; search_s2:= -1; while (key <> item[i]) or (i < n) do begin if key = item[i] then search_s2:= i; i:= i + 1 end end;

 

Аналогичные процедуры на языке Си++:
int search_s1(float* item, int n, float key)
{
for (int i = 0; i < N; i++)
if (key == item[i])
return i;
return -1;
}

int search_s2(float* item, int n, float key)
{
int i=0;
while (key!= item[i] || i < n)
{
if (key == item[i])
return i;
i++;
}
return -1;
}

Последовательный поиск в среднем случае выполнит проверку N/2 элементов, в лучшем – 1 элемента, а в худшем – N элементов.

Недостаток этого поиска – медленное выполнение при большом объеме просматриваемого массива.

Но если данные не отсортированы, то должен использоваться только последовательный поиск.







Дата добавления: 2015-09-04; просмотров: 462. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия