
- •21)Рекурсія. Рекурсивні означення та підпрограми.
- •22)Типи файлів і оголошення файлових змінних
- •23)Процедурні типи
- •24)Відкриття та закриття файлів
- •25)Підпрограма-функція. Стандартні процедури та функції.
- •26)Послідовний запис і зчитування компонентів файла.
- •27)Формальні та фактичні параметри. Параметри-значення, параметри-змінні.
- •Прямий доступ до компонентів файла.
- •29)Поняття про процедуру з параметрами та без параметрів. Локальні та глобальні змінні.
- •30)Буферизація даних. Нетипізовані файли.
- •31)Переривання циклу. Створення циклу на основі вказівки безумовного переходу.
- •32)Поняття про запис. Доступ до компонентів та операції над записам.
- •33)Масив записів. Записи з варіантами.
- •34)Цикл з передумовою та післяумовою. Вкладені цикли.
- •35)Множини та множинний тип даних. Оголошення змінних множинного типу. Зображення множин в оперативній пам'яті.
- •36)Оператори циклів. Цикл з лічильником (з параметром).
- •37)Операції над множинами.
- •38)Оперативний блок. Поліваріантний вибір (Вказівка варіанту). Вказівка безумовного переходу.
- •Поняття про рядок. Функції та процедури обробки рядків.
- •40)Вибір з двох альтернатив (Вказівка розгалуження). Вкладеність конструкцій розгалуження. Логічні операції.
- •41) Загальні відомості про сортування. Сортування методом вибору.
- •42)Вказівки присвоєння, введення та виведення. Форматоване виведення. Арифметичні вирази та стандартні функції.
- •43)Загальні відомості про сортування. Сортування методом вставки.
- •44)Константа. Типізована константа. Змінна. Вирази
- •45)Загальні відомості про сортування. Сортування методом обміну.
- •46)Прості типи даних.
- •47)Загальні відомості про сортування. Швидке сортування.
- •48)Структура та розділи програми на мові Паскаль.
- •49)Загальні відомості про сортування. Сортування методом злиття.
- •50)Походження та розвиток мови Паскаль. Алфавіт та словник мови.
- •51)Класифікація мов програмування. Перетворення програм і система програмування. Мови програмування
- •53)Одновимірні масиви: поняття, його властивості, оголошення, ініціалізація, введення та виведення масиву.
- •54) Відкриті масиви
- •55)Побудова математичної моделі. Основні алгоритмічні структури.
- •Основні властивості масивів, притаманні як одновимірним, так і багатовимірним масивам:
- •Базовими операціями є:
- •Ініціалізація масиву:
- •57) Основні операції обробки одновимірних масивів: вставка та видалення елемента масиву, циклічний зсув елементів масиву.
- •58)Поняття алгоритму, властивості, способи опису.
- •59)Багатовимірні масиви: оголошення, доступ до елементів.
- •Оголошення багатовимірних масивів. Доступ до елементів
- •Можна і так:
- •60) Базові операції обробки двовимірних масивів
47)Загальні відомості про сортування. Швидке сортування.
Основними операціями, що виконуються над таблицями, є впорядкування (сортування) записів і пошук в таблиці запису по заданій умові( по ключу ). Сортування є операцією розстановки записів таблиці в певному порядку відповідно до деякого критерію впорядкування. Сортування здійснюється відповідно до значення ключів всіх записів (напр., впорядкування прізвищ за абеткою або чисел за збільшенням ). Існує достатньо багато методів сортування, що принципово відрізняються один від одного. Якщо таблиця цілком поміщається в оперативній пам'яті ЕОМ, то її впорядкування називають внутрішнім. Якщо для зберігання упорядковуваних даних використовуються зовнішній пристрій, що запам'ятовує, то таке впорядкування називають зовнішнім. Критеріями оцінки методів сортування є :
З - кількість операцій порівняння пар ключів,
Р - число перестановок елементів,
s - резерв пам'яті.
Середня кількість операцій порівняння залежить від методу сортування і при раціональному виборі методу досягає деякого мінімуму, залежного від n, - розміру таблиці ( розмір таблиці - кількість записів, що містяться в ній). Методи внутрішнього сортування можна розділити на дві групи:
- методи, що не вимагають резерву пам'яті;
- методи, що вимагають резерву пам'яті.
До першої групи відносяться такі методи, як метод вибірки, "бульбашки", вставки, Шелла. До другої групи відносяться метод квадратичної вибірки, метод злиття та інші. Прості методи сортування (вибором, обміном, вставкою) вимагають приблизно n**2 порівнянь. Складніші алгоритми зазвичай забезпечують отримання результату за n*log2(n) порівнянь в середньому: сортування методом Шелла, злиттям, "швидке сортування". Проте оптимального у будь-якому випадку сортування не існує, оскільки їх ефективність істотно залежить від типу ключів в таблиці і їх попередній впорядкованості.
Розглянемо алгоритми найбільш рараспространенних методів внутрішнього сортування ( впорядкування виконується за збільшенням значень ключа ).
Швидке сортування.
Основна стратегія прискорення алгоритмів сортування - обміни між якомога більш далекими елементами вихідного файлу - в методі швидкого сортування реалізована за рахунок того, що один із ключів у вихідному файлі використовується для поділу його на два подфайла так, щоб зліва від вибраного елемента знаходилися тільки елементи з меншими ключами, а праворуч - тільки з великими. Елемент, що розділяє файл, поміщається між його двома подфайламі і процедура виконується рекурсивно для кожної половини до тих пір, поки в черговому новому подфайле не виявиться менше, ніж М елементів, де М - заздалегідь вибране число.
Сортування подфайлов, що містять менше ніж М елементів, виконується будь-яким простим методом, наприклад простими вставками. Таким чином, реалізація методу залежить від двох параметрів: значення М і способу вибору елемента, який призначений для розділення файлу на дві частини.
Блок вибору Х в найпростішому випадку формулюється як X = K [l], однак це може призвести до вкрай неефективного алгоритму. Найбільш просте краще рішення - вибирати Х як випадковий ключ з діапазону K [l] ... K [r] і обміняти його з K [l].
Час роботи алгоритму t приблизно оцінюється формулою:
t = a * N * logN + b * N
де a, b - невідомі константи, що залежать від програмної реалізації алгоритму.