- •Введение
- •Способы записи алгоритма
- •Типы алгоритмов
- •Линейные алгоритмы
- •Разветвляющийся алгоритм
- •5. Циклические алгоритмы
- •5.1. Организация циклов с предусловием и постусловием
- •5.2. Табуляция функции одной переменной
- •5.3. Применение циклов в алгоритмах обработки массивов
- •5.3.1. Ввод-вывод одномерных массивов
- •5.3.2.Алгоритм нахождения суммы элементов одномерного массива
- •5.3.3. Алгоритм нахождения минимального или максимального элемента массива и его порядкового номера
- •5.3.4. Алгоритм перестановки
- •5.3.4. Алгоритм формирования нового массива из элементов имеющегося
- •5.3.5. Поиск в упорядоченном массиве.
- •6. Алгоритмы обработки двумерных массивов
- •6.1. Ввод-вывод двумерных массивов
- •Литература
5.3.5. Поиск в упорядоченном массиве.
Массив называется упорядоченным по возрастанию, если для любой соседней пары его элементов выполняется условие
![]()
Массив называется упорядоченным по убыванию, если для любой соседней пары его элементов выполняется условие
![]()
Замечание 1.
Термин:
упорядоченный
по не убыванию
означает выполнение условия
,
а термин: упорядоченный
по не возрастанию
– условие
.
Использование при поиске упорядоченных массивов очень часто значительно повышает эффективность поиска (за счет сокращения времени), поскольку в этом случае просматривается не весь массив, а только его часть.
Например, массив содержит упорядоченный по алфавиту (по возрастанию) список фамилий студентов. По условию задачи нужно выдать список фамилий, начинающихся с буквы "А". В этом случае, как только в массиве попадется фамилия, начинающаяся с буквы "Б" поиск можно завершить; а если бы список не был упорядочен, то пришлось бы просматривать весь массив. Упорядочивание массива (или другой термин – сортировка) осуществляется при помощи специальных алгоритмов, которые рассмотрены в [2].
Пример 5.5. В упорядоченном по не убыванию массиве из чисел найти количество отрицательных чисел, и определить, есть ли в массиве нули.
Решение. Поскольку массив упорядочен по не убыванию, а искать в нем нужно только отрицательные числа или нули, то выход из цикла просмотра возможен в двух случаях: когда весь массив просмотрен (т.е. в нем все числа отрицательные), или встретилось значение =0. Введем дополнительную величину t с начальным значением =0, которое изменит его на 1, если встретится элемент =0. Количество найденных отрицательных чисел обозначим через К. Схема алгоритма приведена на рис. 5.10. Она включает в себя проверку введенного массива на упорядоченность по не убыванию (символы, ограниченные пунктиром).

6. Алгоритмы обработки двумерных массивов
Как уже отмечалось в разделе 5.3., очень часто информация размещается в прямоугольных таблицах, какими представляют себя двумерные массивы (другое название, взятое из математики – матрицы).
Пример двумерного массива Z размерностью 3х4, состоящего из целых чисел, изображен на рисунке.
Э
лементы
такого массива имеют два индекса, первый
из которых означает номер строки, в
которой стоит элемент, а второй – номер
столбца.
Например, Z23 означает число =77.
Таким образом, чтобы выбрать нужное число из такого массива нужно задать значения двух его индексов.
Обработка таких массивов осуществляется с использованием циклов. Но в этом случае циклов нужно 2: один – по изменению номера строки, а второй – по изменению номера столбца. Причем один из этих циклов находится внутри другого. Такие циклы называются вложенными.
Цикл, который стоит внутри другого цикла называется внутренним. А цикл, который содержит внутри себя другой цикл, называется внешним.
Внешний цикл начинает работу раньше, чем внутренний, и включает последний целиком в свою рабочую часть.
