!" #$% &'#(# Konular Binary Search Trees Deerlendirme
Binary Search Trees Bir binary search tree üzerindeki her node hem data saklar hemde dier node lara ulaılırken yön belirler Bir binary search tree nin derinlii root node a göre maksimum seviye sahip olan node ile belirlenir Aaıdaki örnekte ortalama probe sayısı 2.75 tir. Hash fonksiyonlarıyla oluturulan yapılarda probe sayısı daha düük olabilir. Ancak aaç yapıları flexibility özelliine sahiptir. Tüm bilgilerin küçükten büyüe sıralı yazılabilmesi için inorder traversal yeterlidir. Binary Search Trees Indexed Sequential File Organization aaç yapısını kullanır. Hem direct ve hemde sequential eriimde kullanılır. Indexed Sequential File Organization da aaç sadece indeks amacı için kullanılır ve bilgiler yapraklardadır Binary Search Tree lerde ise bilgi hem yapraklarda hemde internal node lardadır. Hash fonksiyonlarıyla oluturulan yapılarda probe sayısı daha düük olabilir. Saklanan bilgi arttıkça binary search tree yükseklii artar ve performans düer Branching factor binary seearch tree de ikidir. Branching factor Indexed Sequential File da daha yüksek olduu için büyük bilgilerin saklanmasında dorudan eriimde ve sıralı eriimde performans yüksektir.
Binary Search Trees Bir binary search tree nin yapısı bilgilerin insert edilme sırasına balıdır. Alfabetik sırayla insert edildiinde aacın yapısı balı listeye dönüür Yeni oluan aaçta en yüksek eriim probe sayısı 8 ve ortalama probe sayısı 4.5 tir Önceki örnekte en yüksek eriim probe sayısı 4 ve ortalama probe sayısı 2.75 tir Aaçların insert sırasında sürekli balance edilmesi performansı artırmaktadır AVL tree veya heightbalanced tree performansı artırmak için sürekli kendisini yeniden düzenlemektedir Bir AVL tree, bir binary search tree dir ve bir node un altaaçlarının yükseklikleri yaklaık aynıdır Bir AVL tree, bilgilerin insert edilme sırasından baımsız olarak aacın dengeli durumunu korumasını salar Bir node un balance factor deeri sa altaacın yüksekliinden sol altaacın yüksekliinin çıkarılmasıyla bulunur ekilde A, C, E = 0, ve F = -1, D = +1, B = +2 balance factor deerine sahiptir Bir AVL aacında bütün node ların balance factor deeri -1, 0 veya +1 olur Her yeni insert ten sonra, aaç dengesiz hale gelmise bir veya iki döndürme ilemiyle dengelenir.
Bir AVL tree için döndürme ilemi temel olarak iki grupta ele alınır 1.durumda dengelenecek node ile child node un balance factor deeri aynı iarettedir. Tek döndürme yeterlidir. 2.durumda ise dengelenecek node ile child node un balance factor deeri farklı iarettedir. Çift döndürme gereklidir. Döndürme ileminden sonra inorder dolamayla elde edilecek bilgide deime olmamalıdır 1.Durum (Dengelenecek node ile child ı arasındaki iaret aynı)
1.Durum (Dengelenecek node ile child ı arasındaki iaret aynı) 2.Durum (Dengelenecek node ile child ı arasındaki iaret farklı)
2.Durum (Dengelenecek node ile child ı arasındaki iaret farklı) Örnek: Dallas, Oakland, Pittsburg, Miami, Chicago, Denver, Boston, Spivey s Corner kelimeleriyle AVL aaç oluturulması
Deerlendirme Tüm kayıtların eklenmesi beklenmeden her eklemeden sonra bir veya iki döndürme yapılır. Dorudan eriimde worst case performansı O(log 2 n) deerinde tutulur. Dengesiz bir altaacın root node unun balance factor deeri 2 olur. Ekleme ilemi sırasında izlenen yol üzerinde 1 balance factor deerine sahip olan node yoksa aaç hala dengededir Eer eklenen son yaprak kendi parent ının ilk child ı ise yol üzerindeki tüm node ların balanca factor deeri yeniden düzenlenir. Eer eklenen son yaprak kendi parent ının ikinci child ı ise sadece parent balance factor deeri yeniden düzenlenir Aaç içerisindeki tüm node ların derinlikleri toplamını en aza indirmeyi amaçlar. Aaçtaki tüm node ların bir kez okunması için gereken toplam probe sayısına Internal Path Length denir. Bir Internal Path Reduction (IPR) Tree bir node un altaaçlarının internal path length deerlerini dengelemeye çalıan bir Binary Search Tree dir. Aaıdaki aaç için internal path length deeri 15 tir.
Temel olarak iki farklı durum oluur. MR (sadaki altaaçta daha fazla node var) ve ML (soldaki altaaçta daha fazla node var). Internal Path Length deeri n c n a kadar azalmıtır Döndürmeden önce internal path deeri, n a, n b, n c, a, b, ve c altaaçlarındaki node sayısı, I a, I b, I c ise a, b, c altaaçlarının internal path length deerleridir Döndürmeden sonra internal path deeri, Internal path length deeri farkı, B altaacı iki parçaya bölünürse n b = n b1 + n b2 + 1 olur Döndürmeden önce internal path deeri Döndürmeden sonra internal path deeri, Internal path length deeri farkı, Balance kriteri
ML (Soldaki altaaçta daha fazla node olması durumları) Balance kriteri her node eklemede eklenen node un parent ı ile root node arasındaki tüm node lar için kontrol edilmelidir Bir döndürme ileminden sonra yeni oluan altaacın eski root node un parent ı ile aacın tamamının root node arasındaki tüm node lar için kontrol ilemi yapılır IPR ile AVL aaçları arasındaki en önemli fark, dengesizlik durumunda AVL aacı altaaçların yüksekliklerini kullanır, IPR aacı ise altaaçların node sayılarını kullanır.
Örnek: Jefferson, Hampton, Greenville, Ahoskie, Gurnsey, Boone, Gusey, Hamilton kelimelerini sırasıyla insert edelim. Jefferson, Hampton, Greenville, Ahoskie, Gurnsey, Boone, Gusey, Hamilton
Jefferson, Hampton, Greenville, Ahoskie, Gurnsey, Boone, Gusey, Hamilton Jefferson, Hampton, Greenville, Ahoskie, Gurnsey, Boone, Gusey, Hamilton
Deerlendirme Tabloda IPR aacının ve AVL aacının worst case performansları görülmektedir IPR aacının height deeri hiçbir zaman AVL aacından kötü olmamaktadır. Ancak IPR aacında Internal Path Length deeri aynı data için AVL aacından %10 daha iyidir. Binary Search Tree ve AVL aaçları gibi, IPR aaçlarıda bilgi sayısı çok artınca etkin deillerdir. (çünkü worst case durumu n log n dir) Deerlendirme (Devam) IPR aaçları sayısal avantajının yanında daha fazla esneklik salar. zin verilecek bir denge kriter deerine göre k-balanced aaçlar oluturulur. stenilen bir k deerine göre Internal Path Reduction yapılır. Böylece k deeri deitirilerek insertion time azaltılırken retrieval time artırılabilir. Dengelenecek aacın node sayısı arttıkça elde edilecek probe sayısı iyiletirmesi ihmal edilebilir. Bu ekilde olutuurlacak aaçlara -balanced aaçlar denir. Aaıdaki ifadenin (döndürme kriterinin toplam node sayısına oranı) deerinden büyük olması halinde düzenleme yapılır. IPR aaçları AVL aaçlarından daha kolay gerçekletirilebilr. Balance deerini elde etmek toplam node sayısını elde etmekten daha zordur. IPR aaconda her node COUNT alanı eklenir ve son eklenen node ile root arasında tüm node ların COUNT deeri 1 artırılır. Ancak COUNT deerinin saklanması için gereken alan 2 bit ten fazladır. BALANCE FACTOR deeri için 2 bit alan gereklidir.
Haftalık Ödev Önceden oluturulmu ve dengelenmemi bir Binary Search Tree nin dengeli hale getirilmesi için kullanılan metodlar hakkında aratırma yapınız. Literatür taraması yaparak elde ettiiniz makaleleri inceleyiniz. Kullanılan metodların avantajlarını ve dezavantajlarını içeren bir rapor hazırlayınız.