Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы обработки данных.doc
Скачиваний:
7
Добавлен:
24.11.2018
Размер:
595.46 Кб
Скачать

5.3.5. Поиск в упорядоченном массиве.

Массив называется упорядоченным по возрастанию, если для любой соседней пары его элементов выполняется условие

Массив называется упорядоченным по убыванию, если для любой соседней пары его элементов выполняется условие

Замечание 1. Термин: упорядоченный по не убыванию означает выполнение условия , а термин: упорядоченный по не возрастанию условие .

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

Например, массив содержит упорядоченный по алфавиту (по возрастанию) список фамилий студентов. По условию задачи нужно выдать список фамилий, начинающихся с буквы "А". В этом случае, как только в массиве попадется фамилия, начинающаяся с буквы "Б" поиск можно завершить; а если бы список не был упорядочен, то пришлось бы просматривать весь массив. Упорядочивание массива (или другой термин – сортировка) осуществляется при помощи специальных алгоритмов, которые рассмотрены в [2].

Пример 5.5. В упорядоченном по не убыванию массиве из чисел найти количество отрицательных чисел, и определить, есть ли в массиве нули.

Решение. Поскольку массив упорядочен по не убыванию, а искать в нем нужно только отрицательные числа или нули, то выход из цикла просмотра возможен в двух случаях: когда весь массив просмотрен (т.е. в нем все числа отрицательные), или встретилось значение =0. Введем дополнительную величину t с начальным значением =0, которое изменит его на 1, если встретится элемент =0. Количество найденных отрицательных чисел обозначим через К. Схема алгоритма приведена на рис. 5.10. Она включает в себя проверку введенного массива на упорядоченность по не убыванию (символы, ограниченные пунктиром).

6. Алгоритмы обработки двумерных массивов

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

Пример двумерного массива Z размерностью 3х4, состоящего из целых чисел, изображен на рисунке.

Элементы такого массива имеют два индекса, первый из которых означает номер строки, в которой стоит элемент, а второй – номер столбца.

Например, Z23 означает число =77.

Таким образом, чтобы выбрать нужное число из такого массива нужно задать значения двух его индексов.

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

Цикл, который стоит внутри другого цикла называется внутренним. А цикл, который содержит внутри себя другой цикл, называется внешним.

Внешний цикл начинает работу раньше, чем внутренний, и включает последний целиком в свою рабочую часть.