- •Загальні положення
- •Розв’язання задач з простою змінною
- •1.1 Мета роботи
- •1.2 Методичні вказівки до організації самостійної роботи студентів
- •1.2.2 Структура програми
- •Використання оператора умовного переходу
- •If (а) оператор 1 ;
- •Оператори циклу
- •1.3 Контрольні запитання
- •1.4 Варіанти індивідуальних завдань
- •2 Розв’язання задач з використанням масивів
- •2.1 Мета роботи
- •2.2 Методичні вказівки до організації самостійної роботи студентів
- •Приклад 2.1 Знайти у масиві mas найменший елемент та його індекс.
- •Приклад 2.2 Відсортувати масив mas дійсних чисел розміром 10 елементів за зменшенням.
- •2.3 Контрольні запитання а завдання
- •3.4 Варіанти індивідуальних завдань
- •3 Робота з рядками
- •3.1 Мета роботи
- •3.2 Методичні вказівки до організації самостійної роботи студентів
- •3.3 Контрольні запитання та завдання
- •4 Робота зі структурами
- •4.1 Мета роботи
- •4.2 Методичні вказівки до організації самостійної роботи студентів
- •4.3 Контрольні запитання та завдання
- •4.4 Варіанти індивідуальних завдань
- •5 Використання функцій при розробці програм
- •5.1 Мета роботи
- •5.2 Методичні вказівки по організації самостійної роботи студентів
- •5.3 Контрольні запитання та завдання
- •5.4 Варіанти індивідуальних завдань
- •6 Пространства имен (поименованные области)
- •6.1 Мета роботи
- •6.2 Вказівки щодо організації самостійної роботи студентів
- •Общие требования.
- •2.7 Контрольний приклад
- •7 Пошук і сортування
- •7.1 Мета роботи
- •7.2 Методичні вказівки до організації самостійної роботи студентів
- •7.2.1 Лінійний пошук
- •7.2.2 Пошук розподілом навпіл (двійковий пошук)
- •7.2.3 Сортування вставками
- •7.2.4 Метод пухирця
- •7.2.5 Сортування перерахуванням
- •7.2.6 Швидке сортування
- •7.2.7 Сортування злиттям
- •7.3 Контрольні запитання
- •Варіанти індивідуальних завдань
7.2.1 Лінійний пошук
Якщо немає ніякої додаткової інформації про розшукувані дані, то очевидний підхід — простий послідовний перегляд масиву зі збільшенням крок за кроком тієї його частини, де бажаного елемента не виявлено.Умови закінчення пошуку: елемент знайдено чи весь масив переглянуто і збігу не виявлено.
7.2.2 Пошук розподілом навпіл (двійковий пошук)
Пошук може бути більш ефективним, якщо дані будуть упорядковані. Основна ідея – вибрати випадково деякий елемент аm і порівняти його з аргументом пошуку х. Якщо він дорівнює х, то пошук закінчується, якщо він менше х, то всі елементи з індексами, меншими чи рівними m, можна виключити з подальшого пошуку; якщо ж він більше х, то виключаються індекси, більші чи рівні m.
7.2.3 Сортування вставками
Нехай потрібно упорядкувати масив за зростанням пропонується використовувати наступний підхід: для , кожен елемент будемо вставляти в потрібне місце серед упорядкованих раніше елементів , розсовуючи їх за рахунок видалення . Цей метод у явному виді рідко використовується на практиці, однак покладена в його основу ідея добре працює, коли потрібно вставити новий елемент у вже упорядкований масив.
7.2.4 Метод пухирця
Ідея методу полягає в упорядкуванні всіх пар сусідніх елементів. Масив проглядається зліва направо і, якщо xi > xi+1 (i=1…n-1), то вони міняються місцями. При цьому i-й елемент (крім першого й останнього) бере участь у двох порівняннях, а це значить, що максимальний елемент масиву буде переміщатися («спливати») до правого кінця масиву і до кінця проходу виявиться останнім. За наступний прохід «спливе» другий по величині елемент і т.д., поки всі елементи не займуть свої місця. Очевидно, для цього буде потрібно не більш n-1 проходів.
7.2.5 Сортування перерахуванням
Для кожного елемента масиву X(n) вважаємо, скільки елементів менше його, тобто фактично знаходимо його положення в упорядкованому масиві. Для збереження цієї інформації можна використовувати масив лічильників C(n). Тоді значення Сi+1 визначає положення елемента xi у результуючому відсортованому масиві R(n).
7.2.6 Швидке сортування
Цей алгоритм одержав широке поширення в багатьох прикладних програмах. Однак ефективність його використання істотно залежить від числа елементів сортуемого масиву, а також характеру розподілу цих даних. Отже:
— вибирається який–небудь елемент (x) (звичайно знаходиться в середині послідовності). Будемо переглядати масив ліворуч доти, поки не знайдемо елемент аi>x, потім будемо переглядати масив праворуч, поки не зустрінеться аj<x. Тепер поміняємо місцями ці два елементи і продовжимо наш процес перегляду й обміну, поки обидва перегляди не зустрінуться десь у середині масиву (значення i та j рівні). У результаті виявиться, що масив розбито на дві половини із ключами, меншими або рівними x, і більшими або рівними x, а сам елемент x буде знаходитися в необхідному місці;
— ітераційно повторюємо процес 1 для кожної з отриманих половин (у перший раз одержимо чотири піддіапазону вихідної послідовності) доти, поки значення індексів для кожного вкладеного діапазону чи будуть рівні, чи змінять відношення. У результаті ми одержимо упорядковану послідовність.