Hash tablosu

Bilişim bilimlerinde komut çizelgesi (İng. hash table veya hash map - hash = doğramak), komut işlevini tanıyıcı değer olarak bilinen benzersiz anahtarı  bir değerle (mesela kişi adını telefon numarasıyla) eşleyen bir veri yapısıdır. Böylece komut çizelgesi bir birleşik dizidir. Komut işlevi, ilişkin değerin arandığı anahtarı bir dizi elemanının indisine ("dilim" veya "kova") çevirir (doğramaya benzediğinden "hash" denmiştir).

İdealde komut işlevinin mümkün olan her anahtarı farklı benzersiz dilim indisine eşlemesi, gerçekte (komut anahtarları sâbit, yani tabloya oluşumundan sonra yeni öge eklenmemesi durumu dışında) enderdir. Çoğu komut çizelgesi tasarımları "çarpışmaları", yani farklı anahtarlara aynı komut değerinin bulunması durumunu normal olarak görerek bir şekilde uzlaştırır.
Uygun boyutlandırılmış bir komut çizelgesinda her bakış için ortalama maliyet (gerekli komut sayısı), çizelgede depolanmış eleman sayısından bağımsızdır. Ayrıca birçok komut çizelge tasarımları, anahtar-değer çiftlerinin keyfî araya sokuluş ve çıkarışlarına  (aslında sönümlenmişCharles E. Leiserson, Amortized Algorithms, Table Doubling, Potential Method  Lecture 13, course MIT 6.046J/18.410J Introduction to Algorithms - Fall 2005) sabit işlem başı maliyetle izin verir.  

Birçok durumda komut tablolarının arama ağaçları veya herhangi bir çizelge başvuru yapısından daha verimli olduğu ortaya çıkar. Bu sebeple birçok yazılım çeşidinde, özellikle birleşmeli dizinlerde, veritabanı indekslemesinde, önbelleklerde ve kümelerde kullanılır.

Komut çizelgeleri kriptografi ve veri iletiminde kullanılan komut listeleri ve komut ağaçlarıyla karıştırmamalıdır.

 Komut işlevi 

Komut çizelgesi algoritmasının temelinde basit bir dizin ögesidir. Bu ögeye kısaca komut çizelgesi (İng. hash table). Komut çizelgesi algoritmaları, veri ögelerinin kiplemelerinden bir indeks hesaplayıp bunu veriyi bir dizine yerleştirmeye kullanılır. Bu hesabın uygulaması komut işlevidir ve f:

indeks = f(kipleme, dizinUzunlugu)

Komut işlevi, veri kiplemesi dizininden oluşturulan indeksi hesaplar. dizinUzunlugu, dizinin büyüklüğüdür.

Birleştirici dil veya başka alçak düzeyli dillerde çoğu zaman sıradan bir komut işleviyle bir veya iki satıriçi makine komutu içeren bir indeks oluşturulur.



 Kaynakça 

Kategori:Arama algoritmaları
Kategori:Hash tabanlı veri yapıları