ПІДХОДИ ДО ПРАКТИЧНОГО АНАЛІЗУ ОБЧИСЛЮВАЛЬНИХ АЛГОРИТМІВ
APPROACHES TO PRACTICAL ANALYSIS OF COMPUTING ALGORITHMS
Сторінки: 102-105. Номер: №6, 2021 (303)
Автори:
БАРМАК О. В.
Хмельницький національний університет
ORCID ID: 0000-0003-0739-9678,
e-mail: аlexander.barmak@gmail.com
РАДЮК П. М.
Хмельницький національний університет
ORCID ID: 0000-0003-3609-112X
e-mail: radiukpavlo@gmail.com
МОЛЧАНОВА М. О.
Хмельницький національний університет
ORCID ID: 0000-0001-9810-936X
e-mail: momolchanova@gmail.com
СОБКО О. В.
Хмельницький національний університет
ORCID ID: 0000-0001-5371-5788
e-mail: olenasobko.ua@gmail.com
OLEXANDER BARMAK, PAVLO RADIUK,MARYNA MOLCHANOVA, OLENA SOBKO
Khmelnytskyi National University
DOI: https://www.doi.org/10.31891/2307-5732-2021-303-6-102-105
Рецензія/Peer review : 24.11.2021 р.
Надрукована/Printed : 30.12.2021 р.
Анотація мовою оригіналу
У роботі пропонується практичний підхід до визначення основних типів алгоритмів залежно від їх ефективності за зовнішнім виглядом програмного коду. Наведено приклади аналізу ефективності програмного коду для обчислювальної складності за зменшенням ефективності, що подається як (в асимптотичних позначеннях) О(1), О(logN), O(N), O(NlogN), O(N2), O(N3). Завдання дослідження полягає в аналізі програмного коду та визначенні умов, за яких алгоритм належить до того або іншого типу обчислювальної складності. Встановлено, що основними чинниками, за якими можна оцінити обчислювальну складність алгоритму за візуальним аналізом програмного коду є наявність у коді циклів, особливо вкладених, рекурсивність алгоритму тощо.
Ключові слова: обчислювальна складність алгоритму, асимптотичний аналіз алгоритму, практичний аналіз обчислювальної складності алгоритму.
Розширена анотація англійською мовою
The present work proposes a practical approach to determining the main types of algorithms, depending on their effectiveness in the appearance of the software code. Examples of analysis of the software code for computational complexity are given in the order of reducing the efficiency supplied as (in asymptotic designations): O(1), O(LogN), O(N), O(NlogN), O(N2), O(N2), O(N2), O(N3). The research task was to analyze the software code and specific conditions in which the algorithm refers to a particular type of computational complexity. The aim of analyzing the complexity of algorithms is to find the optimal algorithm for solving a specific problem. The criterion of optimality of the algorithm is chosen by the complexity of the algorithm, i.e., the number of elementary operations that must be performed to solve the problem using this algorithm. The complexity function is the ratio that connects the algorithm’s input data with the number of elementary operations. The paper contains a description of classical computational complexity that can be revealed by visual analysis of program code. The main types of computational complexity are (listed in descending order of efficiency) constant, logarithmic, linear, linear-logarithmic, quadratic, cubic. Also, methods for the determination of computational complexity are described. It is established that the main factors that can assess the algorithm’s computational complexity for the visual analysis of the software code are the presence of cycles, especially enclosed, reversibility of the algorithm, etc. Further research could usefully explore a method of semantic analysis of program code to predict the assessment of its computational complexity.
Keywords: computational complexity of an algorithm, an asymptotic analysis of an algorithm, a practical analysis of the computational complexity of an algorithm.
References
- Gadanidis G. Artificial intelligence, computational thinking, and mathematics education. The International Journal of Information and Learning Technology. 2017. Vol. 34, No. 2. P. 133–139.
- Tverytnykova O.Ie., Krylova V.A., Vasylchenkov O.H. Bazovi alhorytmy ta osnovy prohramuvannia. Teoriia i praktyka : navch.-metod. posib. – Kharkiv : NTU «KhPI», 2020. – 264 s.
- Sharma A. Merge sort algorithm in C#. C# Corner.URL: https://www.c-sharpcorner.com/blogs/merge-sort-algorithm-in-c-sharp (10.11.2021).