Sažetak | Kroz rad će biti opisani algoritmi pretraživanja, čemu služe, kako i zašto su nastali, njihov razvoj kroz povijest, te će se opisati neki primjeri iz prakse. Nakon toga će biti prikazana implementacija algoritama pretraživanja u programskom jeziku Phyton, odnosno analizirat će se i usporediti više vrsta i načina pretraživanja (neki od algoritama pretraživanja koje će se analizirati u radu su: Linearno pretraživanje, Binarno pretraživanje, Interpolacijsko pretraživanje, Fibonaccijevo pretraživanje, te će se pobliže vizualno objasniti pojedini koraci u algoritmima. Rad će se posebno fokusirati na efikasnost pojedinih algoritama, odnosno vrijeme izvođenja, kompleksnost izvođenja, idealan slučaj i najgori slučaj, te prednosti i nedostatke istih. Svaki algoritam će imati identične ulazne parametre (listu nazvanu li koja se sastoji od niza prirodnih brojeva. Odnosno: li[1, 2, 3, 4, ... ,10n] gdje je n prirodan broj. Iz zadane liste računalno nasumično izabire jedan broj uz pomoć rand() funkcije. Svaki od algoritama traži zadani broj na svoj specifičan način pri čemu se mjeri vrijeme izvođenja u sekundama i kompleksnost trenutnog algoritma, te se nadalje detaljno proučava. |
Sažetak (engleski) | The paper will describe search algorithms, what they are for, how and why they were created, their development through history, and we will give some examples in practice. After that, the implementation of search algorithms in the Python programming language will be presented, that is, we will analyze and compare several types and methods of search (some of the search algorithms that we will analyze in the paper are: Linear search, Binary search, Interpolation search, Fibonacci search, and we will visually explain individual steps in algorithms. The work will focus especially on the efficiency of individual algorithms, i.e. execution time, execution complexity, ideal case and worst case, as well as their advantages and disadvantages. Each algorithm will have identical input parameters (a list named or consisting of a series of natural numbers. That is: li[1, 2, 3, 4, ... ,10n] where n is a natural number. From the given list, you randomly choose one number using the rand() function. Each of the algorithms searches for a given number in its own specific way, measuring the execution time in seconds and the complexity of the current algorithm, and is further studied in detail. |