comboBox1 - містить список, що надає користувачеві вибрати методи сортування даних масиву. Містить текстові значення: «Пірамідальні сортування», «Плавне сортування», «сортування Вибором».
button2 - приймає текстове значення «Сортувати», а також сортує введені або згенеровані користувачем дані з richTextBox1.
richTextBox2 - служить для виведення результатів сортування тим чи іншим обраним методом.
2.3 Опис програми
Ієрархія класів
using System;
using System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;
Використовувані елементи
Оброблювачі собитійvoid button1_Click (object sender, EventArgs e) void button2_Click (object sender, EventArgs e)
Функції
У цьому курсової використовується 3 основних і 4 допоміжних функції.
Функція Print відповідає за виведення результату, попередньо відсортованого обраним методом і передає результат в поле виводу.
private void Print (int [] array)//результат
{. Clear ();// Очищення поля (var x in array)//перебір у змінну х всіх значень масиву array, в який записується результат сортування обраним методом.Text +=x +//додавання цих значень
}
Рісунок.6 Результат роботи функції Print.
Функція selectSort робить сортування за алгоритмом «Вибірка» і передає відсортований масив у функцію Printvoid selectSort (int [] array)//сортування вибіркою
{min;// Оголошуємо min (int i=0; i lt; array.Length; i ++)//перебираємо елементи
{= i;// Присвоюємо найменший елемент i-ому
for (int j=i + 1; j lt; array.Length; j ++)
if (array [j] lt; array [min])//якщо елменент масиву менше мінімального=j;// Присвоюємо нове мінімальне значення елементу масиву
//swap-функція. Міняємо місцями значення
int temp=array [i]
array [i]=array [min]; [min]=temp;
}
}
Рісунок.7 Результат роботи функції selectSort
Функція heapSort робить сортування за алгоритмом «Піраміда» і передає відсортований масиву в функцію Printvoid heapSort (int [] array)//сортування пірамідою
{i, temp;// Оголошуємо змінні
for (i=array.Length/2 - 1; i gt;=0; i--)//елементи з номерами починаючи з array.Length/2 - 1 це листя, то тоді потрібно переупорядкувати піддерева з корінням в індексах (array, i, array.Length - 1);// Викликається функція downHeap і їй передаються аргументи
for (i=array.Length - 1; i gt; 0; i -)
{= array [i]; [i]=array [0]; [0]=temp; (array, 0, i - 1);// В функцію передаються аргументи з кроком - 1
}
}
Рісунок.8 Результат роботи функції heapSort
Функція smoothSort робить сортування за алгоритмом «Плавне» і передає відсортований масив у функцію Print.void smoothSort (int [] mas)//функція плавна сортування
{_ heap_pool (mas);// Виклик функції, що створює послідовність куп з довільного масиву
for (int i=mas.Length - 1; i gt;=0; i -)
{nextPosHeapItemsAmount=0; posMaxTopElem=findPosMaxElem (mas, curState, i, ref nextPosHeapItemsAmount);// Максимальний верхній елемент купи отримує значення у вигляді результату функції findPosMaxElem (posMaxTopElem!=I)
{(ref mas [i], ref mas [posMaxTopElem]);// Викликаємо функцію swap і передаємо в неї значення mas [i] і mas [posMaxTopElem] (mas, nextPosHeapItemsAmount, posMaxTopElem);// Викликаємо функцію
} (ref curState);// Викликаємо функцію PreveState і передаємо значення, посилаючись (ref) на значення змінної curState
}
}
програма сортування піраміда вибір
Рісунок.9 Результат роботи функції smoothSort
Функція downHeap є допоміжною функцією для heapSort, забезпечуючи нижню сортування купи масиву
private void downHeap (int [] array, int k, int n)//функція нижньої сортування
{
//оголошуємо змінні
int new_elem;
int child; _elem=array [k]; (k lt;=n/2)//поки у array [k] є ді...