Komut çizelgesi
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") çevirerir (doğramaya bezediğ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 mâliyet (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ş[1])sabit işlem başı maliyetle izin verir.[2][3]
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ı indislemesinde, önbelleklerde ve kümelerde kullanılır.
Komut çizelgelerini 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 makina komutu içeren bir indeks oluşturulur.
Kaynakça
- ↑ Charles E. Leiserson, Amortized Algorithms, Table Doubling, Potential Method Lecture 13, course MIT 6.046J/18.410J Introduction to Algorithms - Fall 2005
- ↑ Donald Knuth (1998). The Art of Computer Programming'. 3: Sorting and Searching. s. 513–558. ISBN 0-201-89685-0.
- ↑ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001). Introduction to Algorithms (2 bas.). MIT Press and McGraw-Hill. 221–252. ISBN 978-0-262-53196-2.
|