Остання редакція: 2026-01-30
Анотація
У роботі досліджено алгоритми сортування та можливості їх паралельної реалізації з використанням технології OpenMP. Проведено теоретичний аналіз класичних алгоритмів сортування, зокрема методу вставки (Insertion Sort), а також принципів паралельних обчислень у моделях спільної пам’яті. Описано особливості алгоритму Insertion Sort, його складність, поведінку на різних типах вхідних даних та причини обмежених можливостей прямої паралелізації. На основі проведеного аналізу реалізовано послідовну та паралельну модифікації алгоритму Insertion Sort. Паралельна версія ґрунтується на блочному розбитті масиву та подальшій незалежній обробці підмасивів із використанням директив OpenMP. У ході експериментальної частини виконано тестування коректності сортування та проведено вимірювання продуктивності при різній кількості потоків. Результати показали, що паралельна обробка забезпечує прискорення під час роботи з великими масивами, проте ефективність паралельного алгоритму суттєво залежить від структури вхідних даних та способу розбиття масиву. Отримані дані підтверджують можливість прискорення класичного алгоритму Insert Sort за рахунок паралельної обробки блоків, а також демонструють обмеження та потенційні напрями оптимізації паралельних алгоритмів сортування.
Ключові слова
Посилання
1.Павлов О. П., Костенко О. В. Алгоритми та структури даних. – К.: КПІ ім. Ігоря Сікорського, 2018.
2.Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. Introduction to Algorithms. MIT Press, 2022.
3.Knuth D. E. The Art of Computer Programming. Volume 3: Sorting and Searching. Addison-Wesley, 2011.
4.Sedgewick R., Wayne K. Algorithms. Addison-Wesley Professional, 2011.
5.GeeksforGeeks. Insertion Sort. URL: https://www.geeksforgeeks.org/insertion-sort/Жуков І. А., Поліщук В. В.
6.Паралельні та розподілені обчислення. К.: Видавництво НТУУ «КПІ», 2016.
7.Коваленко О. М. Основи паралельного програмування. Харків: ХНУРЕ, 2017.
8.Chapman B., Jost G., van der Pas R. Using OpenMP: Portable Shared Memory Parallel Programming. MIT Press, 2008.
9.Pacheco P. S. An Introduction to Parallel Programming. – Morgan Kaufmann, 2011.
10.Stroustrup B. The C++ Programming Language. Addison-Wesley, 2013.
11.OpenMP Architecture Review Board. OpenMP Application Programming Interface Specification [Електронний ресурс]. – Режим доступу: https://www.openmp.org