Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Ч2(программирование).doc
Скачиваний:
51
Добавлен:
01.03.2016
Размер:
1.49 Mб
Скачать

Обробка упорядкованих масивів

Впорядковані масиви найчастіше використовуються як сховища деякої інформації. Найчастіше зустрічаються такі завдання, пов'язані з їх обробкою:

  • пошук позиції елемента в масиві;

  • вставка елементу у масив, без порушення порядку;

  • видалення елемента з масиву;

  • об'єднання двох масивів в один зі збереженням порядку;

Нижче розглядаються функції, які вирішують ці завдання.

      1. Пошук позиції елемента у впорядкованому масиві

Для пошуку позиції елемента у впорядкованому масиві можна використовувати метод дихотомії (ділення області пошуку навпіл). У цьому методі елемент, який знаходиться в середині області пошуку, порівнюється із зразком, який потрібно знайти. Якщо він не відповідає зразку, то по його значенню можна визначити, в якій з половин області пошуку може знаходитися потрібний елемент, праворуч або ліворуч. Таким чином, в результаті одного порівняння область пошуку звужується наполовину.

Цикл пошуку повторюється доти, поки потрібний елемент не буде знайдений, або область пошуку звузиться до одного елемента, що буде свідчити про те, що потрібного елементу в масиві немає.

Функція, яка повертає номер позиції елементу у впорядкованому масиві наведена на рисунку 8.24. Якщо елемент не знайдено, функція повертає -1.

Рисунок 8.24–Функція пошуку позиції елемента у впорядкованому масиві

      1. Вставка елементу до впорядкованого масиву

Алгоритм вставки елементу до впорядкованого масиву вже розглядався, як частина алгоритму сортування вставкою. Він полягає у послідовному аналізі елементів масиву, починаючи з останнього. Якщо елемент масиву більший ніж той, що потрібно вставити, елементи масиву переміщують вправо на одну позицію, для того, щоб звільнити місце для елемента, що вставляється. Зсуви проводяться доти, поки не буде знайдено місце, відповідне значенню елемента, що вставляється.

Якщо всі елементи масиву більше ніж елемент, що додається, то всі елементи масиву перемістяться праворуч, а новий буде поставлений на перше місце. Зрозуміло, що кількість елементів масиву при цьому збільшується на один.

Функція вставки елемента до впорядкованого масиву таким методом наведена на рисунку 8.25.

Рисунок 8.25 –Функція вставки елементу до впорядкованого масиву

Але функцію, наведену на рисунку 8.25 можна дещо прискорити за рахунок зменшення кількості порівнянь, використавши метод дихотомії для пошуку місця вставки.

Такий варіант функції вставки наведено на рисунку 8.26. Як бачимо, спроба підвищити ефективність алгоритму приводить до його ускладнення.

Рисунок 8.26–Функція вставки елементу до впорядкованого масиву, яка використовує метод дихотомії

      1. Видалення елементу з упорядкованого масиву

В алгоритмі видалення елементу з упорядкованого масиву можна використовувати розглянуту вище функцію для пошуку індексу елементу, що видаляється. Після визначення цього індексу, елемент видаляється шляхом зсуву ліворуч на одну позицію всіх елементів, що знаходяться за тим, який потрібно видалити. Значення змінної, в якій зберігається кількість елементів, у кожному циклі зменшується на одиницю.

Процедура видалення елементу з упорядкованого масиву наведена на рисунку 8.27. Процедурою передбачено, що у масиві можуть бути однакові елементи.

Рисунок 8.27–Функція видалення елементу із впорядкованого масиву