AVL ağacı - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Tanım
    • 1.1 Dengeleme Faktörü (Balance factor)
    • 1.2 Özellikleri
  • 2 Kaynakça

AVL ağacı

  • العربية
  • Български
  • Bosanski
  • Čeština
  • Dansk
  • Deutsch
  • English
  • Español
  • فارسی
  • Suomi
  • Français
  • עברית
  • Hrvatski
  • Magyar
  • Bahasa Indonesia
  • İtaliano
  • 日本語
  • 한국어
  • Lombard
  • Lietuvių
  • Polski
  • Português
  • Русский
  • Slovenčina
  • Slovenščina
  • Српски / srpski
  • Svenska
  • Українська
  • Tiếng Việt
  • 中文
  • 粵語
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Wikimedia Commons
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Birkaç elemanın AVL ağacına eklenmesini gösteren animasyon. sol, sağ, sağ-sol ve sol-sağ rotasyonları göstermektedir.
Görsel. 1: Dengeleme faktörleriyle bir AVL ağacı (yeşil)

Bilgisayar bilimlerinde bir AVL ağacı (İsmini icat eden Adelson-Velsky ve Landis'den alır) kendi kendini dengeleyen bir İkili arama ağacıdır. Bu tip Veri yapılarının icat edilmiş ilk örneğidir.[1] Bir AVL ağacında, iki çocuk alt ağacın uzunluk farklı en fazla bir olabilir; Eğer herhangi bir anda fark birden fazlaysa, dengeleme yapılarak bu özellik korunur. Arama, ekleme ve silme işlemlerinin hepsi hem ortalama hem de en kötü durumlarda O(log n) zaman sürer, burada n {\displaystyle n} {\displaystyle n} harfi operasyon öncesindeki düğüm(node) adetidir. Ekleme ve çıkarma işlemleri ağacın bir veya daha fazla ağaç rotasyonları ile dengelenmesini gerektirebilir.

AVL ağacı ismini iki Sovyet mucitlerinden alır, Georgy Adelson-Velsky ve Evgenii Landis algoritmayı 1962'deki makaleleri "An algorithm for the organization of information".[2]'de yayımladılar.

AVL ağaçı ve Kırmızı-siyah ağaç aynı operasyonları destekledikleri ve ikisinde de basit operasyonlar için O ( log ⁡ n ) {\displaystyle {\displaystyle {\text{O}}(\log n)}} {\displaystyle {\displaystyle {\text{O}}(\log n)}} zamanı sürdüğü için sıklıkla kıyaslanırlar. Arama işleminin fazla olduğu uygulamalar için AVL ağaçları daha katı şekilde dengelendiği için Kırmızı-siyah ağaçtan daha hızlıdır.[3] Kırmızı siyah ağaçlara benzer şekilde AVL ağaçları uzunluğa göre dengelenmiştir.

Tanım

[değiştir | kaynağı değiştir]

Dengeleme Faktörü (Balance factor)

[değiştir | kaynağı değiştir]

Bir İkili ağaçda bir düğümün(node) Dengeleme Faktörü X iki çocuk alt ağaçlarının uzunluk farkı olarak tanımlanır.

BF ( X ) := Uzunluk ( SağAltAğaç ( X ) ) − Uzunluk ( SolAltAğaç ( X ) ) {\displaystyle {\text{BF}}(X):={\text{Uzunluk}}({\text{SağAltAğaç}}(X))-{\text{Uzunluk}}({\text{SolAltAğaç}}(X))} {\displaystyle {\text{BF}}(X):={\text{Uzunluk}}({\text{SağAltAğaç}}(X))-{\text{Uzunluk}}({\text{SolAltAğaç}}(X))}[4]:459

Bir ikili ağaçın AVL ağacı olarak tanımlanması için değişmez(Invariant)'ın

BF ( X ) ∈ { − 1 , 0 , 1 } {\displaystyle {\text{BF}}(X)\in {\{-1,0,1\}}} {\displaystyle {\text{BF}}(X)\in {\{-1,0,1\}}}[5] bütün düğmleri için geçerli olması gerekir.

Bir düğüm X için eğer BF ( X ) < 0 {\displaystyle {\text{BF}}(X)<0} {\displaystyle {\text{BF}}(X)<0} ise o düğüm sol taraf ağırlıklı(left-heavy), BF ( X ) > 0 {\displaystyle {\text{BF}}(X)>0} {\displaystyle {\text{BF}}(X)>0} ise sağ taraf ağırlıklı(right-heavy) ve BF ( X ) = 0 {\displaystyle {\text{BF}}(X)=0} {\displaystyle {\text{BF}}(X)=0} ise dengeli denir.

Özellikleri

[değiştir | kaynağı değiştir]

Denge faktörlerini güncel tutmak için daha önceki denge faktörünü ve uzunluktaki değişimi bilmek yeterlidir, yani mutlak uzunluğu bilmek gerekli değildir. AVL denge bilgisini alışıldık şekilde saklamak için, her düğüm başına iki bit yeterlidir. Ancak, sonraki araştırmalarda bir bitin de yeterli olduğu görülmüştür.

n {\displaystyle n} {\displaystyle n} adet düğüme sahip bir AVL ağacının uzunluğu h {\displaystyle h} {\displaystyle h} (En fazla katman sayısı olarak sayılmaktadır), log 2 ⁡ ( n + 1 ) ≤ h < log φ ⁡ ( n + 2 ) + b {\displaystyle \log _{2}(n+1)\leq h<\log _{\varphi }(n+2)+b} {\displaystyle \log _{2}(n+1)\leq h<\log _{\varphi }(n+2)+b} aralığındadır[4]:460.
Burada φ := 1 + 5 2 ≈ 1.618 {\displaystyle \varphi :={\tfrac {1+{\sqrt {5}}}{2}}\approx 1.618} {\displaystyle \varphi :={\tfrac {1+{\sqrt {5}}}{2}}\approx 1.618}  altın oran ve b := log 2 ⁡ 5 2 log 2 ⁡ φ − 2 ≈ − 0.3277. {\displaystyle b:={\frac {\log _{2}5}{2\log _{2}\varphi }}-2\approx \;-0.3277.} {\displaystyle b:={\frac {\log _{2}5}{2\log _{2}\varphi }}-2\approx \;-0.3277.} Bunun sebebi h {\displaystyle h} {\displaystyle h} uzunluğundaki bir AVL ağacı en az F h + 2 − 1 {\displaystyle F_{h+2}-1} {\displaystyle F_{h+2}-1} düğüm içermektedir. Burada { F n } n ∈ N {\displaystyle \{F_{n}\}_{n\in \mathbb {N} }} {\displaystyle \{F_{n}\}_{n\in \mathbb {N} }}, değeri başlangıç değerleri F 1 = F 2 = 1 {\displaystyle F_{1}=F_{2}=1} {\displaystyle F_{1}=F_{2}=1} olan Fibonacci dizisi.

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ Sedgewick, Robert (1983). "Balanced Trees". Algorithms. Addison-Wesley. s. 199. ISBN 0-201-06672-6. 
  2. ^ Adelson-Velsky, Georgy; Landis, Evgenii (1962). "An algorithm for the organization of information". Proceedings of the USSR Academy of Sciences (Rusça). 146: 263-266.  English translation 8 Mart 2021 tarihinde Wayback Machine sitesinde arşivlendi. by Myron J. Ricci in Soviet Mathematics - Doklady, 3.1259-1263, 1962.
  3. ^ Pfaff, Ben (June 2004). "Performance Analysis of BSTs in System Software" (PDF). Stanford University. 15 Eylül 2004 tarihinde kaynağından (PDF) arşivlendi. 
  4. ^ a b Knuth, Donald E. (2000). Sorting and searching (2. ed., 6. printing, newly updated and rev. bas.). Boston [u.a.]: Addison-Wesley. ISBN 0-201-89685-0. 
  5. ^ Rajinikanth. "AVL Tree : Data Structures". btechsmartclass.com. 27 Ekim 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mart 2018. 
"https://tr.wikipedia.org/w/index.php?title=AVL_ağacı&oldid=32705389" sayfasından alınmıştır
Kategoriler:
  • Sovyet icatları
  • İkili ağaçlar
Gizli kategori:
  • Webarşiv şablonu wayback bağlantıları
  • Sayfa en son 09.01, 8 Mayıs 2024 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
AVL ağacı
Konu ekle