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

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

Дихотомический поиск (поиск элемента в упорядоченном массиве)





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

const n = 20 ‘количество элементов в массиве

dim a(1 to n) ‘исходный массив

defint i, x, k, m,f

defint left, right, mid ‘левая, правая граница и середина отрезкa

input “задайте искомый элемент”;k ‘ Основной блок программы

for i = 1 to n

input a (i)

‘упорядочивание массива по возрастанию

for i = 1 to n – 1

m = i

for j = i + 1 to n

if a(j) < a(m) then m =j

next

x = a(i): a(i) = a(m): a(m) = x

next

‘поиск элемента

f = 0 ‘элемент не найден

left = 1: right = n

DO ‘поиск элемента в части массива от элемента [left] до элемента [rigth]

mid = (left + right) \ 2

if k < a(mid) then right = mid – 1 ‘элемент в левой части

else if k > a(mid) then left = mid + 1 ‘элемент в правой части

else f = 1 ‘нашли

LOOP until f<>0 or (left > rigth)

if f=1 then print “элемент с номером”; mid; “‘совпадает с исковым”; k

else print ”‘не нашли”

End







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




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


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

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

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