Hakualgoritmin
Hakualgoritmin on arvutiteaduses kasutatav meetod andmete leidmiseks või probleemi lahendamiseks otsinguruumis. Selle eesmärk on leida konkreetne element, vastata küsimusele või optimeerida teekond. Hakualgoritmide tüübid sõltuvad andmestruktuurist ja otsingutüübist: lineaarne otsing, binaarne otsing, hash-põhine otsing ning puu- või graafilised otsingud. Lineaarne otsing kontrollib elemente järjestikku ja sobib mittesortitud andmetele; selle ajaline keerukus on O(n). Binaarne otsing nõuab sorteeritud kogumit ja töötab O(log n) ajal. Hash-põhine otsing leiab väärtuse keskmiselt O(1) ajaga, kui hajufunktsioon on hea ja kokkusobivad sobitused puuduvad. Graafilises ja puuotsingus kasutatakse sageli DFS-i (järeldusotsing) ja BFS-i (laiusotsing), ning suurte otsinguruumide puhul on levinud ka Dijkstra ja A*-otsingud, mis leiavad lühima teekonna või optimaalse lahenduse.
Rakendused hõlmavad andmebaasides ja informatsioonis otsingut, tekstiotsingut, veebiotsingut ning tehisintellekti probleemilahendust, sealhulgas marsruudi planeerimist ja otsinguruumide