Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskoe_ukazanie_po_laboratornym_rabotam_...docx
Скачиваний:
5
Добавлен:
21.11.2019
Размер:
269.21 Кб
Скачать

2.2. Метод бинарного поиска

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

1. Сначала образец сравнивается со средним (по номеру) элементом массива.

  • Если образец равен среднему элементу, то в этом случае формируется признак, означающий, что задача решена. При этом осуществляется переход на конечный блок алгоритма.

  • Если образец больше среднего элемента, то это значит, что искомый элемент расположен ниже среднего элемента (между элементами с номерами sred+1 и niz), и за новое значение verb принимается sred+1, а значение niz не меняется. При этом процесс поиска образца продолжается.

  • Если образец меньше среднего элемента, то это значит, что искомый элемент расположен выше среднего элемента (между элементами с номерами verh и sred-1), и за новое значение niz принимается sred-1, а значение verh не меняется. В этом случае поиск образца в массиве продолжается.

Объем раздела составляет 8-10 полных печатных страниц.

3.5. Описание алгоритма задания элементов массива

Блок 1 алгоритма является начальным. В блоке 2 алгоритма происходит объявление переменных. В блоке 3 алгоритма проверяется необходимое условие: количество элементов массива должно принадлежать промежутку чисел из диапазона [1..10000]. В блоке 4 алгоритма формируется признак, который соответствует правильности определения количества элементов массива i, при этом конечное значение переменной цикла Elements не равно нулю. В блоке 5 осуществляется вывод сообщения об ошибке определения количества элементов массива, при этом конечное значение переменной цикла Elements принимает нулевое значение. В блоке 6 алгоритма вводится конечное значение переменной цикла Elements. Блоки 7, 8 формируют цикл, в котором происходит заполнение массива случайными числами с помощью математической функции random – случайное целое число в диапазоне от 0 до 10 000. В блоках 9, 10 формируется цикл, осуществляющий вывод элементов массива на экран монитора, счетчику i присваиваются значения от 1 до конечного значения переменной цикла Elements. В Блоках 11 и 12 алгоритма формируются признаки k и f, принимающие значение ИСТИНА. Эти признаки соответствуют выполнению процедуры Button2.Click – сортировки массива методом простых вставок и процедуры N2.

Описание алгоритма поиска заданного образца

Блок 1 алгоритма является начальным. В блоке 2 определяются переменные, применяемые для поиска образца в массиве чисел. В блоке 3 алгоритма задаются начальные значения переменных и значение образца. В блоке 4 алгоритма счетчик цикла i увеличивается на единицу. В блоке 5 алгоритма происходит сравнение правой и левой границ массива. Если правая граница меньше левой – выход НЕТ, то в блоке 6 алгоритма определяется середина границы поиска. В блоке 7 алгоритма выдается сообщение “Нет элемента”. В блоке 8 алгоритма происходит сравнение среднего элемента массива с заданным образцом. Если значения равны, то по выходу ДА осуществляется переход на блок 12 алгоритма, где происходит вывод заданного образца. В блоке 9 алгоритма анализируется результат сравнения образца и среднего значения массива. В блоке 10 алгоритма вычисляется значение левой границы массива. В блоке 11 алгоритма определяется значение правой границы числового массива. В блоке 13 алгоритма формируется признак: продолжение поиска или завершение процесса.