ваний фаіл зберігається під ім'ям test.hlp і при його відсутності видається вікно повідомлення: В«Фаил text.hlp НЕ знайдено В».
Виклик функції побудови гістограм виконується при натисканні клавіші F2. При цьому функція main () звертається до функції file ().
3.1.2 ОПИС ФУНКЦІЇ srecmg ().
Для побудови впорядкованого списку У 'з Розблокувати В = <к1, к2, ..., Кn> при сортуванні злиттям список У ділиться на n підсписків В1 = <к1>, В2 = <к2>, ... , Вn = <Кn> довжини 1. Потім відбувається процедура проходження в якій m ≥ 2 упорядкованих списків В1, В2, ..., Вm змінюються на m/2 (або (m +1)/2) упорядкованих списків які створюються злиттям B2i-1та B2i (2i ≤ m) і підсумовуванням Bm c непарним m. Процес повторюється до появи однієї послідовності довжини m. Кількість дій, необхідних для сортування злиттям, дорівнює n log2n, бо за одне проходження виконується n порівнянь, а всього необхідно здійснити log2n проходжень. Сортування сліянііем дастаточно ефективно і використовується при великих значення n. p> Функція srecmg () є рекурсивної, і сортує масив а [n]. За кожним викликом масив для сортування ділиться на дві частини - від а [0] до
a [i-1] і від a [i] до a [n], кожна з яких сортується окремо, а потім виконується їх злиття. Злиття виконується за допомогою викликається функції merge () в яку передається покажчик на масив, поточний номер елемента масиву і кількість елементів масиву. Параметрами функції merge () є масив w [], його довжина l/2 і довжина першої частини масиву l1 . Функція merge () виконує злиття подмассивов, утворюючи на їх місці упорядкований масив w [0], w [1], ..., w [l2-2], w [l2-1].
3.1.3 ОПИС ФУНКЦІЇ qqsort ()
Швидке сортування полягає в тому, що список В = реорганізується в B ', , B ", де В '- подспісок В з елементами, не більшими k1, а B "- подспісок В з елементами великими k1. У списку В ', , В " елемент К1 вже знаходиться на місці де він повинен бути в отсортірованності списку. Далі до списків В 'і В'' застосовується упорядованіченіе швидкої сортуванням. p> Рекурсивна функція qqsort упорядоваечет швидкої сортуванням ділянка масcіва цілих чисел перший елемент якого вказується показником v [left], останній - показником v [right].
Якщо ділянка масива більш ніж з двох елементів, v [left] - low> 1, то знаходиться ділив елемент і переноситься в V [0]. Пременной last присвоюється значення першого елемента масиву left. Потім масив ділиться на дві частини, елементи яких відповідно більше і менше last. Далі функція виконує перезапам'ятовування ділить елемента і викликає себе для розбитих підсписків.
Обмін елементів виконується за допомогою функції swap (), в яку з функції qqsort () перелається покажчик на масив і елементи, місце-положення яких в масиві потрібно звернути.
Час побудови списку залежить від його початкового стану. Час буде мінімальним, якщо кожен крок розділу дає підсписки В ', B'' приблизно однакової довжини; тоді необхідно (n log2 n) кроків. Якщо початковий список мало чим відрізняється від звичайного відсортованого то необхідно (n ^ 2)/2 кроків. Швидка сортування вимагає додаткової пам'яті порядку O (log2n) для виконання рекурсивної функції qqsort () (неявного стека).
3.1.4 ОПИС ФУНКЦІЇ grafix ()
Функція grafix () має тип void і параметр simbol [2] - Масив швидкості виконання сортування. Ця функція викликається при побудові гістограми і працює в графічному режимі про що інформує рядок initgraph (& gdriver, & gmode, ""), яка встановлює систему в графічний режим, визначає характеристику відеодрайвера. Якщо змінна errorcode не отримує значення grOk, то подальше виконання програми не можливо так як графічний режим не встановлений (про що виводиться повідомлення). У масиві simvol [] визначається більший елемент, стовпець якого встановлюється в 100%. p> Рядок:
bar3d (midx + otst + siz * n, midy -CopySimvol [n], midx + siz * (n +1), midy, 15, 1); створює 3D-зображення гістограм, висота яких визначається масивом CopySimvol [n].
Колір виведених елементів зображення устонавлівают функція setcolor (), а всі виведені лінії будуються функцією line (). Текст виводиться за допомогою функції outtextxy (). Якщо текст повинен виводитися вертикально то функції settextstyle () задається параметр VERT_DIR.
Після виведення на екран зображення виконується опитування клавіатури і якщо користувачем була натиснута клавіша "ESC", то програма повертається у функцію file () і далі у функцію main (), де знову очікує натискання необхідної клавіші. p> Функція closegraph () закриває графічний режим. <В
3.2 КЕРІВНИЦТВО ПРОГРАММИСТА
В
Дана програма призначена для аналізу методів сортування масивів швидкої і злиттям. Програма може працювати на IBM сумісних комп'ютерах сімейства х86 починаючи з 286 і вище, під управлінням операційних...