68973

Сортування масивів

Лекция

Информатика, кибернетика и программирование

Стан об’єкту цілком і повністю визначається станом елементів масиву. Для роботи з об’єктом можна використовувати інтерфейс що містить наступний набір операцій: розміщення масиву динамічної пам’яті ініціалізація масиву проглядання вивід значень елементів масиву сортування масиву різними способами...

Украинкский

2014-09-28

30.5 KB

3 чел.

Лекція № 18

Тема: Сортування масивів

План

Сортування масивів

Специфікація класів для сортування масивів

Сортування масивів

Перше питання, на яке слід отримати відповідь, це визначити, чи може і |чи повинна програма бути об'єктно-орієнтованою чи ні? В даному випадку відповідь "Так" очевидна. Чому? Об'єктом є масив, який доцільно розмістити в динамічній пам'яті. Стан об'єкту цілком і повністю визначається станом елементів масиву. Для роботи з об'єктом можна використовувати інтерфейс, що містить наступний набір операцій: розміщення масиву динамічної пам'яті, ініціалізація масиву, проглядання (вивід) значень елементів масиву, сортування масиву різними способами (прості і складні сортування вибором, обміном або вставками), звільнення зайнятої пам'яті. Отже, сортування масиву зручно реалізувати з використанням класу або ієрархії класів, до проектування яких ми і перейдемо зараз.

Специфікація класу для сортування масиву

При проектуванні специфікації класу необхідно вирішити наступні питання:

-  вибрати доцільну ієрархію класів;

- визначити, чи достатнім є використання звичайних класів або слід застосувати шаблони класів;

- спроектувати структуру кожного з класів ієрархії (визначити склад членів класу, їх функціональне призначення і доступність);

- спроектувати файлову структуру класу (чи розміщувати цілком визначення класів в заголовних файлах або оголошення класів поміщати в заголовні файли, а реалізацію методів класів — у файли з розширенням срр).

Ієрархія шаблонних або звичайних класів. Оскільки сортування масиву є хоча і важливим, але все таки приватним завданням, що є одним з етапів складнішого завдання, в якому потрібно використовувати відсортований масив, то представляється доцільним реалізувати сортування масиву в одному класі або в ієрархії класів. Цей клас (класи) можна використовувати як базового (базових) при вирішенні завдань, що використовують відсортовані масиви. Як указувалося раніше, при сортуванні масивів використовується   наступний набір операцій: розміщення масиву в динамічній пам'яті, ініціалізація масиву, проглядання (вивід) значень елементів масиву, сортування масиву різними способами (прості і складні сортування вибором, обміном або вставками), звільнення зайнятої пам'яті. Аналізуючи цей набір операцій, неважко відмітити, що частина операцій (розміщення масиву в динамічній пам'яті, ініціалізація масиву, перегляд або виведення значень елементів масиву, звільнення зайнятої пам'яті) є типовою і використовується не тільки при сортуванні масиву, але і при вирішенні практично будь-яких інших завдань обробки масивів. Із сказаного виходить, що як вершина ієрархії класів слід використовувати базовий клас, в якому реалізовані наступні типові операції:

розміщення масиву в динамічній пам'яті (конструктор);

ініціалізація масиву значеннями, що читаються, наприклад, з файлу на магнітному диску;

перегляд або вивід, наприклад у файл, значень елементів масиву;

звільнення зайнятої масивом динамічної пам'яті (деструкція).

 

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

Таким чином, отримуємо наступну ієрархію класів, яку можна використовувати для сортування масивів.

// Базовий клас: конструктор, деструкція, ініціалізація і виведення масиву

class SArTJB

{

};

// Похідний клас: різні методи сортування масивів

class SArTJD : public SArT_B

{

}

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

шаблон похідних класів повинні розміщуватися в різних заголовних файлах.


 

А также другие работы, которые могут Вас заинтересовать

61581. Кодирование текстовой информации 23.56 KB
  Развивать устойчивый познавательный интерес у учащихся Воспитательная: воспитывать у учащихся мотивацию учебной деятельности Тип урока: урок изучения нового материала Программное обеспечение: компьютер лекционный материал презентация созданная в контенте...
61583. Графики и диаграммы. Наглядное представление о соотношении величин 518 KB
  Ход урока: Организационный этап 2 минуты Учитель: Здравствуйте. Проверка домашнего задания повторение ранее изученного материала 16 минут Учитель: На прошлом уроке вы научились наглядно определять изменения величин. Учитель: Верно.
61584. My family and I 141.03 KB
  Развивающие: продолжить развитие памяти, речевых умений, языковой догадки Воспитательные: развитие умений работать самостоятельно и в группе; воспитание уважительного отношения к старшим; формирование семейных ценностей у учащихся.
61585. Зрительного внимания у детей младшего дошкольного возраста 1.02 MB
  Выявить уровень развития зрительного внимания у детей младшего дошкольного возраста. Разработать и апробировать программу по развитию зрительного внимания у детей младшего дошкольного возраста.
61586. Полиграфическое искусство 25.56 KB
  Задачи: Обучающие: изучить полиграфическое дело познакомиться с такими понятиями как фирменный стиль полиграфия и подобное рассмотреть элементы рукописных книг познакомится с историей их изготовления познакомится с понятием единый стиль...
61587. Портрет мамы 19.68 KB
  Материалы для учителя: репродукции портретов наглядные пособия портрет лист бумаги формата А3 гуашь клей салфетки мольберт репродукции с портретами матерей известных художников...
61588. Экзотические птицы в витражной технике 17.82 KB
  Как вы все уже знаете тема нашей смены в лагере называется 438 попугаев. Каждому отряду присвоены имена различных видов попугаев. Затем мы вырежем всех нарисованных попугаев...
61589. Троекуров и Дубровский 20.23 KB
  Цели урока: Личностные: развитие представлений детей о нравственных и социальных проблемах, таких как верность дружбе, любовь, искренность, честь и отвага, постоянство, преданность, справедливость и несправедливость.