Hasítófüggvény

A hasítófüggvények informatikában használt speciális eljárások a kereső algoritmusoknál használt indexstruktúrák, hasítótáblák felépítésére. Ezeket a hasítótáblákat nagy méretű adatállományok adatelemeinek gyors, hatékony megkeresésére használják. A hasítótáblák a bináris fastruktúrák és a láncolt listák mellett a leggyakrabban használt indexstruktúrák a modern kereső alkalmazásokban. Alkalmazásuk esetén gyakran használják a hesselés (hashing) kifejezést, ami gyakran félreértésekhez vezet, mivel a magyar nyelvben ugyanez a kifejezés használatos a kriptográfiai hash függvény, illetve más hashfüggvények, mint például érzékelési hashfüggvények használatakor is.

Az eljárás

Az informatika mindmáig legfontosabb kutatási területe minél jobb keresőalgoritmusok kidolgozása. Az már az 1950-es években világossá vált, hogy hagyományosan a nyers erőt használó szekvenciális kereső algoritmusok nem kellően hatékonyak.

A legtöbb kereső módszer egy adott K értéknek egy adattábla kulcsaival történő összehasonlításán alapul. A hasításos módszer egy harmadik lehetőség. Esetében egy a K értéken végzett aritmetikai művelet segítségével kiszámolunk egy f(K) függvényt, ez határozza meg a K érték helyét az adatállományban. Ezt a módszert nevezik a hasításos keresés módszerének. Sajnos ezeknek a függvényeknek a megtalálása nagyon nehéz, különösen ha azt is figyelembe vesszük, hogy lehetőség szerint az azonos érték hozzárendelését is el kell kerülni.

Ezért a f(K) függvények hasítóértékének keresése során fel kell adni az egyértelműség követelményét, azaz megengedhető több kiinduló értékhez ugyanaz az f(K) hasítóérték hozzárendelése. Ekkor viszont szükséges egy módszer az azonos hasítóértékű elemek megkülönböztetésére.

Források

  • Knuth, Donald E.. Art of Computer Programing, Volume / 3 Sorting and Searching. Addison-Wesley, 513–558. o. (1997). ISBN 0-201-896850 
Sablon:Adatszerkezetek
  • m
  • v
  • sz
Adatszerkezetek
Típusok
Collection • Container
Absztrakt adattípusok
  • Asszociatív tömb (associative array, map)
  • Kétvégű sor (deque)
  • Fa (tree)
  • Gráf (graph)
  • Halmaz (set)
  • Hash (hash)
  • Prioritásos sor (priority queue)
  • Sor (queue)
  • Verem (stack)
Tömbök
  • Bittáblázat (bitboard)
  • Bittérkép (bitmap)
  • Dinamikus tömb (dynamic array)
  • Magassági mező (heightmap)
  • Mátrix (2 dimenziós tömb, matrix)
  • Párhuzamos tömb (parallel array)
  • Ritka tömb (sparse array)
  • Ritka mátrix (sparse matrix)
  • Tömb (array)
Láncolt adatszerkezetek
  • Láncolt lista (linked list)
  • Kétszeresen láncolt lista (doubly linked list)
  • Kifejtett láncolt lista (unrolled linked list)
  • Önrendező lista (self-organizing list)
  • Ugrásos lista (skip list)
  • VLista (VList)
  • XOR láncolt lista (xor linked list)
Fa adatszerkezetek
  • AA-fa
  • AVL-fa
  • Bináris fa (binary tree)
  • Bináris keresőfa (binary search tree)
  • Bűnbak fa (scapegoat tree)
  • Intervallum fa (interval tree)
  • Önkiegyensúlyozó bináris keresőfa (self-balancing binary search tree)
  • Piros-fekete fa (red-black tree)
  • Súlyozott fa (weight-balanced tree)
Kupacok
  • 2-3 kupac
  • Bináris kupac (binary heap)
  • Binomiális kupac (binomial heap)
  • D-kupac (D-ary heap)
  • Fibonacci kupac (Fibonacci heap)
  • Kupac (heap)
  • Párosító kupac (pairing heap)
  • Treap
Gráf adatszerkezetek
Hash
  • Bloom szűrő
  • Elosztott hash tábla
  • Hash fa
  • Hash lista
  • Hash-tábla
  • Hash trie
  • Prefix hash fa
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap
Ez az informatikai tárgyú lap egyelőre csonk (erősen hiányos). Segíts te is, hogy igazi szócikk lehessen belőle!