See artikkel vajab toimetamist. (Veebruar 2013) |
Otsingutabel (inglise keeles lookup-table) on andmete tabel arvutiteaduses, kuhu on salvestatud mingi funktsiooni väärtused, et asendada jooksvalt nende arvutamine. Programmi tööajas võib sellest tulenev säästmine olla väga suur, sest tavaliselt on mälust andmete lugemine kordades kiirem, kui seda on mõni kallis arvutustehe. Otsingutabel võib olla enne valmis arvutatud ja juba programmi salvestatud või siis arvutatakse selle väärtused programmi initsialiseerimise faasis. Otsingutabeleid kasutatakse ka tihti igasuguse sisendi valideerimiseks: võrreldakse sisendit lubatud sisendite nimekirjaga jne.
Enne arvutite tulekut kasutati paberile prinditud otsingutabeleid, et kiirendada käsitsi keeruliste funktsioonide arvutamist. Nendeks funktsioonideks olid enamasti trigonomeetrilised funktsioonid ja logaritmid.[1]
Koolis õpetatakse lastele korrutustabelit, mis on ka tegelikult otsingutabel, et kiirendada kõige sagedamini kasutatavate numbrite korrutamist.
Esimeste arvutite juures olid sisend/väljund operatsioonid eriti aeglased. Ja nii tundus loogiline vähendada kulukaid lugemisoperatsioone kasutades tabeleid, kus olid ainult kõige sagedamini esinevad andmed. Tänapäeval on see protsess automatiseeritud (vt vahemälu), aga siiski on kasulik kasutada ka rakenduse otsingutabeleid nende andmete jaoks, mis ei muutu üldse või muutuvad harva.
Vahemälud töötavad ka nagu otsingutabel.
Digitaalses loogikas saab implementeerida n-bitilist otsingutabelit multiplekseriga, mille sisendiks on otsingutabeli sisendid ja väljundid on konstantsed. n-bitine otsingutabel saab kujutada endast ükskõik millist n sisendiga Boole'i funktsiooni, modelleerides tõeväärtustabelit. Selliseid otsingutabeleid kasutatakse laialdaselt FPGA-des.