68973

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

Лекция

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

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

Украинкский

2014-09-28

30.5 KB

3 чел.

Лекція № 18

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

План

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

class SArTJB

{

};

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

class SArTJD : public SArT_B

{

}

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

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


 

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

58030. Индия. Культурно — исторические особенности. Экономико-географическая характеристика 118 KB
  Цель: сформировать у учащихся общие представления о культуре и экономических особенностях Индии; совершенствовать навыки учащихся самостоятельно отбирать и анализировать материал; продолжить формирование умений обобщать и делать выводы; воспитывать ответственность...
58031. Давня Індія 78.5 KB
  Слово вчителя: Шановні учні сьогодні ми з вами помандруємо на Схід до цікавої і загадкової Індії. Вивчення нового матеріалу Географічне положення Індії Робота з картою.
58032. Застосування дієприкметника як особливої форми дієслова у захисті проектів «Особливості догляду за шкірою підлітків» 1.94 MB
  МЕТА: виховувати в учнів любов до вивчення української мови; творчу ініціативу та свідоме ставлення до зміцнення й збереження власного здоров’я; розвивати мовленнєву компетенцію учнів та навички комунікативно користуватися засобами мови в різних життєвих ситуаціях...
58033. Прості і складені задачі, які включають дії над величинами, вираженими одиницями площі 58.5 KB
  Цілі: освітні: формувати обчислювальні уміння і навички, уміння розв’язувати задачі, аналізувати математичні завдання; розвивальні: розвивати логічне і алгоритмічне мислення, пізнавальні та інтелектуальні можливості, стимулювати розвиток умінь учнів аргументувати свою відповідь...
58034. Застосування інтеграла до моделювання процесів 2.54 MB
  Навчальна: узагальнити і систематизувати знання студентів з теми «Інтеграл та його застосування»; сприяти закріпленню знань про геометричний, фізичний та економічний зміст інтеграла; формувати вміння й навички студентів самостійно систематизувати та поглиблювати знання...
58035. Применение интеграла 107 KB
  Цель: Обобщить и систематизировать знания по теме Применение интеграла. Актуализация опорных знаний Определение первообразной; Определение неопределенного интеграла; Определение интеграла...
58036. ЗАСТОСУВАННЯ ВИЗНАЧЕНОГО ІНТЕГРАЛА 558.5 KB
  Сприяти закріпленню знань про геометричний та фізичний зміст інтеграла. Учитель пропонує закінчити речення щоб сформульовані твердження були вірними: Криволінійною трапецією називається Дія обернена до диференціювання Первісні для однієї і тієї ж функції відрізняються тільки...
58037. Завоевание арабов. Создание Арабского халифата 248.5 KB
  Рассмотреть историю создания Арабского халифата и возникновение ислама, ознакомиться с ярчайшими достижениями исламской культуры; усовершенствовать навыки работы с исторической картой
58038. Утворення національної держави в Італії 123 KB
  Мета: навчити учнів встановлювати хронологічну послідовність подій; визначати причини хід та наслідки об’єднання Італії; пояснювати терміни: поміркованоліберальний напрям об’єднання революційний напрям об’єднання; давати характеристику політичним лідерам даного періоду...