Kombinasyonal Algoritmalar
Arama Algoritmaları
Sıralama Algoritmaları
Karşılaştırmaya Dayalı Sıralama Algoritmaları
- Baloncuk Sıralama (Bubble sort)
- Birleştirme Sıralama (Merge sort)
- Öbek Sıralama (Heap sort)
- Hızlı Sıralama (Quick sort)
Sıkıştırma Algoritmaları
Kayıpsız Sıkıştırma
Kayıplı Sıkıştırma
İlişkilendirme Algoritmaları
- Hash Ağacı Algoritması
- dynamic hash
- collesions
Bir bilginin hash edilmiş halinden orjinal haline dönüştürülmesi için hash algoritmaları .Net ile birlikte bize verilmiştir.�
Bir database management tekniği olan hashing teorik olarak order of n(1) sağlayabilir. Yani eldeki key'i kullanılarak veri'nin konumu bulunur. Hash fonksiyonu veri'nin bazı matematiksel özelliklerini kullanılarak Örnek olarak;
Harflerinin ordinal değeri ve kelimedeki yerleri, bir key üretir bu key sayesinde konum belli olur.
Aynı key değerine ait iki veri olduğunda Collesion “Çakışma” olur.
Farklı iki veriye karşılık hashing fonksiyonunun aynı değeri ürettiği duruma çakışma denir. Örneğin fonksiyondan "hastane" ve "pilav" verilerinden değer üretmesini istediğimizde aynı değeri (örneğin 126435465699) üretebilir. Bu durumda çözüm olarak (collision resolution) iki temel yaklaşımdan biri uygulanabilir
Açık Adresleme (Open Addressing) : Eğer hashing fonksiyonu tabloda daha önceden kullanılan bir indis değeri üretirse, başka bir hashing fonksiyonu ile bir sonraki boş kaydın indis değeri üretmesi sağlanır. Bu işlem boş indis bulunana kadar devam eder. Örneğin H(x) + 1; ile bu işlem sağlanabilir.
Bağlı Liste Kullanarak (Linking) : Aşağıdaki şekilde de görüleceği gibi aynı indise sahip kayıtlar bağlı liste kullanarak birbiri ile ilişkilendirilir. Hashing fonksiyonu kullanarak indis elde edildiğinde bu bağlı liste üzerinde dolaşılarak kayıtlara ulaşılır.
Verinin ve hasing fonksiyonuyla elde edilen değerlerin birlikte tutulduğu veri yapısıdır. Şimdi hem uygulamamızı geliştirmeye devam edelim hem de hash tablosunu implemente edelim. Uygulamamız bir şekilde(mesela bir dosyadan okunarak)Â elde edilmiş kelimeleri hash tablosuna yerleştirsin. Tablodaki her bir kaydı aşağıdaki yapı temsil etsin
Dynamic hash Binary tree internal ve external node'lardan oluşur. External node'lar gerçek data sayfasını gösterirler. Internal node'lar doğru external node'a ulaşmayı sağlarlar. Internal node'larda pseudo kod içindeki 0'lar için sola 1'ler için sağa gidilir. Hash fonksiyonu 0 ve 1'leri rastgele oluşturduğu için ağaç stokastik olarak dengelidir. Dynamic hashing metodunda index sürekli büyür. Kayda ulaşmak için gerekli doğru sayfayı elde etmek için bir binary tree index kullanılır. Extendible hashing metodunda olduğu sabit uzunlukta bir pseudokey kullanmak yerine değişken pseudokey kullanılır. Bit serisi şeklinde pseudokey oluşturulur