ПРОГРАМНА РЕАЛІЗАЦІЯ ТА ДОСЛІДЖЕННЯ АЛГОРИТМІВ ПАРАЛЕЛЬНОГО ШВИДКОГО СОРТУВАННЯ
DOI:
https://doi.org/10.31891/2307-5732-2023-323-4-95-105Ключові слова:
програма, алгоритм, сортування, паралельне сортування, паралельні обчисленняАнотація
Робота присвячена програмній реалізації та дослідженню алгоритмів паралельного швидкого сортування. А саме для випадку, коли немає можливості використати надбання технологій OpenMP або CUDA, які орієнтовані на C++. Розроблено оригінальну програму, яка реалізує паралельні алгоритми сортування у вигляді консольного додатку засобами мови С#. Розвиток розподілених систем та паралельних обчислень впливає на розвиток алгоритмів з використанням паралельних технологій. Виникає необхідність порівняння ефективності алгоритмів, що використовують технології розподілених систем та паралельних обчислень. Для програмної реалізації обрано відомі алгоритми паралельного швидкого сортування: послідовне швидке сортування; наївне паралельне сортування; оптимізоване паралельне сортування; паралельно-послідовне сортування; гіпершвидке сортування; паралельне швидке сортування шляхом регулярної вибірки. Надано матеріал по кожному алгоритму мовою C#. Зроблено порівняння швидкодії розглянутих паралельних алгоритмів сортування. Можливість порівняння ефективності алгоритмів є цікавою та пізнавальною в учбовому процесі підготовки ІТ-спеціалістів. Програмна реалізація дослідження алгоритмів сортування виконується в ітеративному режимі за кілька кроків: завантажити програму; у відкритому консольному вікні ввести бажану довжину масиву сортування; ввести мінімальне значення елемента масиву; ввести максимальне значення елемента масиву: із списку доступних алгоритмів сортування обрати бажаний; після вибору алгоритму сортування відбувається сортування масиву, виводиться час сортування та відсортований масив. У результаті досліджень з’ясовано, що для технологій, пов’язаних з C#, найкращим із розглянутих алгоритмів є гіпершвидке сортування, а прийнятними - оптимізоване паралельне сортування або наївне паралельне сортування.