Chapter 6 TransformandConquer Copyright 2007 Pearson AddisonWesley All
- Slides: 97
Chapter 6 Transform-and-Conquer Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
İkili Arama Ağaçları (BST) İkili arama ağaçları aşağıdaki özellikli ağaçlardır: K <K Örnek: 5, 3, 1, 10, 12, 7, 9 >K
Dengeli arama ağaçları 2 yol var: • yeni eleman eklendiğinde “çok dengesizlik” oluşursa denge ayarı yap – AVL ağaçlar – kırmızı siyah ağaçlar • arama ağacında her düğüm (node) için birden fazla anahtara izin ver – 2 -3 ağaçlar – 2 -3 -4 ağaçlar – B-ağaçlar
AVL ağaçlar
Dengeli ikili arama ağaçları • En kötü durumda bile yüksekliği O(log n) olan ağaçlara dengeli ağaçlar denir • En iyi örneklerinden biri AVL (Adelson-Velsky ve Landis) ağaçlarıdır
AVL Ağaçları Tanım • İkili ağaçtır. • T boş olmayan ikili bir ağaç ve TL ve TR bu ağacın sol ve sağ altağaçları olsun. Aşağıdaki koşullar sağlanırsa T ağacına AVL ağacı denir: 1. TL ve TR ikisi de AVL ağaçlarıdır ve 2. |h. L – h. R| 1 dir, burada h. L ve h. R TL ve TR ağaçlarının yükseklikleridir
AVL arama ağaçları • AVL arama ağaçları ikili arama ağaçlarıdır ve aynı zamanda AVL ağaçlarıdır
Denge faktörü (df) • Her ekleme ve silme işlemi sonrasında her düğüm için denge faktörü (df) hesaplanır • Bir x düğümü için df(x) aşağıdaki gibi tanımlanır: height(x left. Child) – height(x right. Child) • AVL ağaçlarda her düğüm için df(x) – 1, 0, veya 1 olur.
AVL ağaçları ve denge faktörü -1 10 1 7 0 3 0 1 0 5 1 40 0 8 1 30 -1 20 45 -1 0 35 0 25 • Bu bir AVL ağacı mıdır? • Her düğüm için denge faktörleri kaçtır? • Bu bir AVL arama ağacı mıdır? 0 60
AVL arama ağaçlarına ekleme • Eklemeden sonra AVL ağacı özelliği bozulabilir • Yani ağaç dengesizleşebilir • Bu durumda ağacın dengesini onarmamız gerekir, bunun için yapılan işleme döndürme( rotation) denir.
• Dengesizlik çeşitleri Eklemeden sonra, A düğümünün denge faktörü – 2 veya 2 ise A düğümünde aşağıdaki 4 çeşit dengesizlik oluşabilir : 1. LL: yeni düğüm A nın sol alt ağacındadır. 2. LR: yeni düğüm A nın sol alt ağacının sağ alt ağacındadır. 3. RR: yeni düğüm A nın sağ alt ağacındadır. 4. RL: yeni düğüm A nın sağ altağacının sol alt ağacındadır.
Döndürme (Rotation) • iki veya üç komşu düğüm için çocuk ve veli arasında dönüşüm (ağacın dengesini onarmak için)
Döndürme
Sol Döndürme Tanım • İkili arama ağacını dengelemek için A düğümünü aşağı ve sola çeker. • A‘nın sağ çocuğu A nın yerine geçer, A ise bu sağ çocuğun sol çocuğu olur, A nın sağ çocuğunun sol çocuğu A nın sağ çocuğu olur. 9 A 4 15 Left Rotation 15 12 22 9 4 22 12
Sol döndürme Root P A Q B C
Sol döndürme Root P A Q B C
Sol döndürme Root P A Q B C
Sol döndürme Root P A Q B C
Sol döndürme Root Q P A B C
Sol döndürme Root Q C P A B
Sağ döndürme Tanım İkili arama ağacını dengelemek için A düğümünü aşağı ve sağa çeker. • A‘nın sol çocuğu A nın yerine geçer, A ise bu sol çocuğun sağ çocuğu olur, A nın sol çocuğunun sağ çocuğu A nın sol çocuğu olur A 15 9 4 9 22 12 . Right Rotation 4 15 12 22
Sağ döndürme Root Q C P A B
Sağ döndürme Root Q C P A B
Sağ döndürme Root Q C P A B
Sağ döndürme Root Q P A B C
Sağ döndürme Root P A Q B C
Sağ döndürme Root P A Q B C
Çift Döndürme B’nin çocuğu olarak yeni düğüm eklenirse? Root Q C P A B
Çift döndürmeler Ağaç dengeli olacak mı? ? Değilse sağ döndürme sorunu çözer mi ? Root Q C P A B D
Çift döndürmeler Deneyelim…. Root Q C P A B D
Çift döndürmeler Deneme…. Root Q C P A B D
Çift Döndürmeler Deneme…. Root Q C P A B D
Çift döndürmeler Dengelendi mi? ? Root P A Q C B D
Çift döndürmeler Sağ döndürmenin çalışmamasının nedeni sol altağacın pozitif denge faktörüne sahip olmasıdır. Root Q C P A B D
Çift döndürmeler • Problemi çözmek için, önce sol alt ağaçta sol döndürme yapmak gerekir ki solun solu ağırlaşsın. • Sonra ise ağacın tamamında sağ döndürme yapılır. Root Q C P A B D
Çift döndürmeler • Sol döndürme “sol alt ağaçta” Root Q C P Sub. Root A B D
Çift döndürme • Sol döndürme “sağ altağaçta” Root Q C P Sub. Root A B D
Çift döndürmeler • Sol döndürme “sol altağaçta” Root Q C P Sub. Root A B D
Çift döndürmeler • Şimdi “sol” altağacın “solu” ağırdır ve biz tüm ağaçta “sağ” döndürme yapıyoruz. Root Q C B P A D
Çift döndürmeler Root Q C B P A D
Çift döndürmeler Root Q C B P A D
Çift döndürmeler Root Q C B P A D
Çift döndürmeler Root Q C B P A D
Çift döndürmeler Root Q B D P A C
Çift döndürmeler B Root P A Q D C
Tek ve Çift Döndürmeler • Tek döndürme: LL ve RR dengesizliği içindir • Çift döndürme: LR ve RL dengesizliğinde kullanılır • LR dengesizliği için önce RR döndürmesi sonra LL döndürmesi yap • RL dengesizliği için önce LL sonra RR döndürmesi yap
1. Durum (RR sağın sağı) X A Y B C Bu şekilde X ve Y birer düğüm, A ve B ise birer altağaç olsun. A ağacının yüksekliği h(A)= h, B ağaçıcın yüksekliği h(B)= h, C ağacının yüksekliği h(C)=h+1 olsun. df(Y)=h-(h+1)=-1 ve df(X)=h-(h+2)=-2 olur
1. Durum (RR sağın sağı devam ) • Bir önceki slayttaki şekilde dengesi bozulmuş düğümün denge faktörü -2 ve onun çocuğunun denge faktörü -1 dir. Bu durumda X e göre sol döndürme yapılır ve sonuç aşağıdaki gibi olur Y X • A C B
2. Durum (LL solun solu) • Aşağıdaki şekilde X ve Y birer düğüm, A, B, C birer altağaç ve h(A)=h+1, h(B)=h(C)=h olsun. Bu durumda df(Y)=1, df(X)=2 olur. X Y • A C B
2. Durum (LL solun solu devam) Y A X B C Bir önceki slayttaki şekilde dengesi bozulmuş düğümün yani X in denge faktörü 2 ve çocuğu Y nin denge faktörü 1 dir. Bu durumda X e göre sağ döndürme yapılır ve yukarıdaki şekil oluşur.
3. Durum (RL sağın solu) • Aşağıdaki şekilde X, Y, Z birer düğüm, A, B, C, D birer alt ağaç olsun. Yükseklikler h(A)=h(C)=h(D)=h ve h(B)=h-1 olsun. Bu durumda df(X)=-2, df(Y)=1 ve df(Z)=-1 olur. X Y A D Z B C
3. Durum (RL sağın solu devam) • df(X)=-2, df(Y)=1 ve df(Z)=-1 durumunda çift döndürme yapılır ve aşağıdaki sonuca ulaşılır (Burada önemli olan -2 den sonra 1 gelmesidir yani zıt işaretler olmasıdır) Z Y X A B C D
3. Durum (RL sağın solu devam) • Peki bu sonuca nasıl ulaşıldı? Önce Y den sağ döndürme yapıldı ve aşağıdaki şekil oluştu X Z A Y B C • Sonra da X den sol döndürme yapıldı D
4. Durum (LR solun sağı) • Aşağıdaki şekilde X, Y, Z birer düğüm, A, B, C, D birer alt ağaç olsun. Yükseklikler h(A)=h(B)=h(D)=h ve h(C)=h-1 olsun. Bu durumda df(X)=2, df(Y)=-1 ve df(Z)=1 olur. X D Y A Z B C
4. Durum (LR solun sağı devam) • df(X)=2, df(Y)=-1 ve df(Z)=1 durumunda çift döndürme yapılır ve aşağıdaki sonuca ulaşılır. (Burada önemli olan 2 den sonra -1 gelmesidir yani zıt işaretler olmasıdır) Z X Y A B C D
4. Durum (LR solun sağı devam) • Peki bu sonuca nasıl ulaşıldı? Önce Y den sol döndürme yapıldı ve aşağıdaki şekil oluştu X D Z Y A C B • Sonra da X den sağ döndürme yapıldı
AVL Ağacı döndürmeler Tek döndürmeler: ekle 14, 15, 16, 13, 12, 11, 10 • Önce 14 ve 15 ekle: 14 15 Şimdi 16 yı ekle
AVL ağacı döndürmeler Tek döndürmeler: • 16 eklenmesi AVL özelliğini bozuyor 14 15 16 • Döndürme gereksinimi var.
AVL Ağacı döndürmeler Tek döndürmeler: 16 eklenmesi AVL özelliğini bozuyor: 14 15 16 • Döndürme gerekir.
AVL ağac döndürmeleri Tek döndürmeler: • Döndürme : 14 15 16
AVL Ağaç döndürmeleri Tek döndürme: • Döndürme sonucu AVL özelliği onarıldı: 15 14 16
AVL Ağaç döndürmeleri Tek döndürme: 13 ve 12 ekle 15 14 13 12 • AVL özelliği bozuldu. 16
AVL ağaç döndürmeler Tek döndürmeler: • Döndürme çeşidi? : 15 14 13 12 16
AVL ağaç döndürmeler Tek döndürmeler: 15 13 12 • Ekle 11. 16 14
AVL ağaç döndürmeler Tek döndürme: 15 13 12 16 14 11 • AVL özelliği bozuldu
AVL ağaç döndürmeleri Tek döndürmeler: • Döndürme çeşidi: 15 13 12 11 16 14
AVL ağaç döndürmeleri Tek döndürmeler: 13 15 12 11 • ekle 10. 14 16
AVL ağaç döndürmeleri Tek döndürmeler: 13 12 11 10 • AVL özelliği bozuldu 15 14 16
AVL ağaç döndürmeleri Tek döndürmeler: • Döndürme çeşidi? : 13 15 12 11 10 14 16
AVL ağaç döndürmeleri Tek döndürmeler: 13 15 11 10 12 . 14 16
AVL ağaç döndürmeler Çift döndürmeler: ekle 1, 2, 3, 4, 5, 7, 6, 9, 8 • Ekle 1 ve 2: 13 15 11 10 12 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • AVL özelliği bozuldu 13 11 10 1 2 15 12 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • Döndürme çeşitleri: 13 11 10 1 2 15 12 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • AVL özelliği onarıldı: 13 15 11 2 1 • Ekle 3. 12 10 14 16
AVL ağaç özellikleri Çift föndürmeler: • AVL özelliği bozuldu: 13 11 2 12 10 1 3 15 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • Döndürme çeşitleri: 13 11 2 1 12 10 3 15 14 16
AVL ağaç döndürmeleri Çift Döndürmeler: • AVL dengesi onarıldı: 13 10 2 1 • Ekle 4. 15 11 3 14 12 16
AVL ağaç döndürmeleri Çift döndürmeler: • AVL özelliği bozuldu 13 10 2 1 15 11 14 12 3 4 16
AVL ağaç döndürmeleri Çift döndürmeler: • Döndürme çeşidi: 13 10 2 1 15 11 14 12 3 4 16
AVL Ağaç döndürmeleri Çift döndürmeler: 10 13 2 1 4 • Ekle 5. 15 11 3 12 14 16
AVL Ağaç döndürmeleri Çift döndürmeler: 10 13 2 1 15 11 3 12 4 5 • AVL özelliği bozuldu. 14 16
AVL ağaç döndürmeleri Tek döndürme: • Döndürme çeşidi: 10 13 2 1 15 11 3 12 4 5 14 16
AVL ağaç döndürmeleri Tek döndürme: • AVL dengesi onarıldı: 10 13 2 1 3 • ekle 7. 15 11 4 5 12 14 16
AVL ağaç döndürmeleri Tek döndürme: • AVL özelliği bozuldu. 10 13 2 1 3 15 11 4 12 5 7 14 16
AVL ağaç döndürmeleri Tek döndürme: • Döndürme çeşidi? : 10 13 2 1 3 15 11 4 12 5 7 14 16
AVL ağaç döndürmeleri Çift döndürme: • AVL dengesi onarıldı. 10 13 4 2 1 3 • ekle 6. 15 11 5 7 12 14 16
AVL ağaç döndürmeleri Çift döndürme: • AVL özelliği bozuldu. 10 13 4 2 1 7 3 6 15 11 5 12 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • Döndürme çeşidi? : 10 13 4 2 1 7 3 6 15 11 5 12 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • AVL dengesi onarıldı. 10 13 4 2 1 3 5 15 11 6 7 • ekle 9 ve 8. 12 14 16
AVL ağaç döndürmeleri Çift döndürmeler: • AVL özelliği bozuldu. 10 13 4 2 1 3 5 15 11 6 12 7 9 8 14 16
AVL ağaç döndürmeler Çift döndürmeler: • Döndürme çeşidi? : 10 13 4 2 1 3 5 15 11 6 12 7 9 8 14 16
AVL ağaç döndürmeler Son ağaç: • Ağaç neredeyse tam dengeli bir ağaçtır 10 13 4 2 1 3 5 12 8 7 15 11 6 9 14 16
AVL ağacı oluşturma AVL ağacı oluştur liste: 5, 6, 8, 3, 2, 4, 7
Örnek devamı
AVL ağacı yüksekliği • AVL ağacında N düğüm varsa, yükseklik en fazla 1. 44 log(N+2)-0. 328 olur. • Pratikte log N den bir az çoktur. • Örnek: AVL ağaçı 9 yüksekli 143 düğümlü 94
AVL Ağacı yüksekliği • Düğümlerim minimum sayısı S(h), yükseklik h ise S(0)=1, S(1)=2, S(h) = S(h-1) + S(h-2) +1 • Fibonacci sayıalrı: (F(0) = F(1) = 1, F(n)=F(n-1) + F(n-2)) • İddia: S(h) = F(h+2) -1 her h ≥ 0 için. • İspat: Tümevarım. Temel durum; S(0)=1=F(2)-1=2 -1, S(1)=2=F(3)-1=3 -1. Tüm h , h-1, h-2, . . . için doğru olsun. Bu durumda • S(h+1) = S(h) + S(h-1) + 1 = F(h+2) -1 +F(h+1) -1 + 1 (by inductive hypothesis) = F(h+3) – 1 • Fibonacci sayıları 95
AVL ağacı yüksekliği • 96
- Copyright 2007
- Pearson
- 2017 pearson education inc
- Copyright by pearson education inc. answers
- 2010 pearson education inc
- Copyright 2009
- Copyright pearson education inc
- Copyright 2014 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright by pearson education inc. answers
- 2008 pearson education inc
- 2005 pearson prentice hall inc
- Copyright 2009 pearson education inc
- Copyright pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Composition copyright example
- Copyright 2010 pearson education inc
- Copyright 2009 pearson education inc
- 2009 pearson education inc
- 2009 pearson education inc
- 2009 pearson education inc
- Copyright pearson education inc
- Name a point that is collinear with the given points
- Pearson education, inc. publishing as prentice hall
- Pearson education 2011
- Robert whelan
- Stress management for life 5th edition
- Pearson education inc publishing as pearson prentice hall
- Pearson 2012
- Copyright 2008
- Copyright 2015 all rights reserved
- Copyright © 2015 all rights reserved
- Dell all rights reserved copyright 2009
- Copyright © 2018 all rights reserved
- Pearson education inc all rights reserved
- Pearson education inc. all rights reserved
- Pearson education inc. all rights reserved
- Pearson education inc. all rights reserved
- Chapter 12 stoichiometry answer key pearson
- Pearson chapter 6
- Fiancial analysis chapter 15 pearson solutions
- Return on common stockholders equity
- Help ever hurt never
- Interventi sociali rivolti all'infanzia e all'adolescenza
- Crucified laid behind a stone
- I work all night i work all day
- Basic communication operations in parallel computing
- Sistem all in all out
- Regio palmaris
- Silent night holy night all is calm all is bright
- 馮定華
- All of you is more than enough for all of me
- She's all states and all princes i nothing else is
- No power of hell, no scheme of man bible verse
- Above all powers above all kings
- Ribbon untuk memulai vba excel adalah
- Excel
- Mental health act 2007 made simple
- Delhi fire service act 2007
- Df 23/2007
- 12 oktober 2007
- Dijana dominis prester
- How to create multiple choice questions in word 2007
- Sale of goods and supply of services act 1980
- June 2007 physics regents answers
- Powerpivot excel 2007
- Inei censo 2007 resultados
- Summary of public procurement act, 2007
- Ods to excel
- Microsoft word 2007 dapat dijalankan dengan menggunakan
- Microsoft office project 2007
- Visio professional 2007
- Publisher 2007
- Curso word 2007
- Maturita 2007
- The heavenly banquet
- Lineamientos de política de salud en el perú
- Lei 171 de 2007
- Sentenze gemelle 348 e 349 del 2007
- Itc/2308/2007
- 45/prt/m/2007
- Krossi novellid
- Kirjanik 1920-2007
- Microsoft project 2007 tutorial
- Ms word view tab
- Installer solveur excel
- Tablas de contenido en word
- Putting people first 2007
- Decreto 231/2007
- Office 2007 wiki
- How to create mail merge in ms word 2007
- Andrew forster poet
- Google sky 27, 2007