SlideShare una empresa de Scribd logo
1 de 40
YZM 2116
Veri Yapıları
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi
Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yazılım Mühendisliği
BÖLÜM - 9
Bu bölümde,
• Hatırlatmalar
• Tam İkili Ağaç
• Eksiksiz İkili Ağaç
• Dizi Kullanarak İkili Ağaç Gerçekleştirimi
• Heap, Max Heap, Min Heap
• Öncelik Kuyruğu
• HeapSort
konusuna değinilecektir.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Hatırlatmalar…
• Tam İkili Ağaç (Full Binary Tree)
• Eksiksiz İkili Ağaç (Complete Binary Tree)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Neydi?
4Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Tam İkili Ağaç (Full Binary Tree)
• Her bir düğümün (i)net olarak iki çocuk düğüme
sahip olduğu ve (ii)yaprak düğümlerin aynı
seviyede olduğu ikili ağaçtır.
• Her düğüm, eşit şekilde sağ ve sol alt-ağaçlara
sahiptir.
5Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Eksiksiz İkili Ağaç (Complete Binary Tree)
• Son seviye dışındaki tüm seviyelerin tam (full)
olduğu ikili ağaç türüdür.
• Düğümleri sol taraftan (düğüme göre) doldurulur.
• Yeni bir derinliğe soldan sağa doğru ekleme
başlanır.
6Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Eksiksiz İkili Ağaç (Complete Binary Tree) (devam…)
7Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
SORU
DİZİ KULLANARAK İKİLİ AĞAÇ
GERÇEKLEŞTİREBİLİR MİYİZ?
8Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi
• Bellek kullanım tasarrufu sağlar (işaretçi yok vs.).
• Düğümler arası linkler olmadığı halde, ağaç
üzerindeki düğümlerde aile ilişkisi korunur
(parent-child).
• Gezinmeyi basitleştirir.
• Veriyi Saklama Şekli
i. Seviye-seviye (level-by-level)
ii. Soldan-sağa (left-to-right)
9Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)
Soru: Aşağıdaki ikili ağacı dizide nasıl tutarız?
10Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)
Cevap: Kök’ü 0’dan başlatarak, sol-sağ kolları her seviyede
dizi indisleri şeklinde arttırarak numaralayıp diziye atabiliriz.
11Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)
0
1 2
43 5 6
7 8 9
12Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)
• tree.nodes[index] düğümü ifade etmek üzere
• Parent-child ilişkisi:
– Sol çocuk = tree.nodes[2*index+1]
– Sağ çocuk = tree.nodes[2*index+2]
– Parent düğüm = tree.nodes[(index-1)/2]
• Yaprak düğümler:
– tree.nodes[numElements/2] - tree.nodes[numElements-1]
(tam sayı bölüm)
13Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)
Örnek: 1 indisli D düğümü için …
Sol çocuk indisi ([2*index+1]): 3
Sağ çocuk indisi ([2*index+2]): 4
Parent indisi([(index-1)/2]): 00
1 2
43 5 6
7 8 9
14Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)
• Tam veya eksiksiz ikili ağaçlar, diziler ile çok basit
ve etkin şekilde gerçekleştirilebilirler.
• Dizide boş alan kalmaz.
• Tam tersi
durumdaki ikili
ağaçlarda
mutlaka boş yer
kullanmak
gerekir.
15Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Heap Nedir?
• Aşağıdaki özelliklere sahip ikili ağaçtır:
– Özellik 1: Eksiksiz (complete) ikili ağaçtır.
– Özellik 2 (Heap özelliği): Ebeveyn (parent)
düğümün değeri her zaman çocukların değerinden
büyük (küçük) veya eşittir.
• Max Heap: Kök en büyük değere sahiptir.
• Min Heap: Kök en küçük değere sahiptir.
16Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Max ve Min Heap
Max HeapMin Heap
17Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Heap Gerçekleştirimi
19
4222127
23
45
35
Heap h = new Heap(100);
h.Insert(45);
h.Insert(35);
h.Insert(23);
h.Insert(27);
h.Insert(21);
h.Insert(22);
h.Insert(4);
h.Insert(19);
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Heap Oluşturma
• Adım 1: Yeni düğümü
seviye-seviye soldan-
sağa olacak şekilde ilk
uygun yere ekle.
19
4222127
23
45
35
42
Heap Insert(42)
• Adım 2: Eklenen yeni
düğümü, ebeveyn ile
karşılaştırarak yukarı
doğru taşı.
• Adım 3: Uygun yer
bulana kadar Adım 2
tekrarla.
19
4222142
23
45
35
27
Heap Insert(42)
19
4222135
23
45
42
27
Heap Insert(42)
• Adım 2: Eklenen yeni
düğümü, ebeveyn ile
karşılaştırarak yukarı
doğru taşı.
• Adım 3: Uygun yer
bulana kadar Adım 2
tekrarla.
Heap Insert Gerçekleştirimi
Max Elemanı Silme (RemoveMax)
19
4222135
23
45
42
27
• Adım 1: Son eleman
kök eleman yerine
taşınır.
• Örnekte, 27 elemanı
köke taşınır.
19
4222135
23
27
42
Max Elemanı Silme (RemoveMax)
• Adım 1: Tamamlandı.
Ancak, Heap
özelliğinin tekrar
kurulması gerekiyor.
19
4222135
23
27
42
Max Elemanı Silme (RemoveMax)
• Adım 2: Eklenen yeni
düğümü, büyük
çocuğu ile yer
değiştirecek şekilde
aşağıya doğru taşı.
19
4222135
23
42
27
• Adım 2: Eklenen yeni
düğümü, büyük çocuğu
ile yer değiştirecek
şekilde aşağıya doğru
taşı.
• Adım 3: Adım 2’yi
tekrarla.
Max Elemanı Silme (RemoveMax)
19
4222127
23
42
35
• Adım 2: Eklenen yeni
düğümü, büyük çocuğu
ile yer değiştirecek
şekilde aşağıya doğru
taşı.
• Adım 3: Adım 2’yi
tekrarla.
Max Elemanı Silme (RemoveMax)
Heap RemoveMax Gerçekleştirimi
Heap RemoveMax Gerçekleştirimi
Heap Ağacı Uygulamaları
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Öncelik Kuyruğu (Priority Queue)
Heap Sıralama Algoritması (Heap Sort)
Öncelik Kuyruğu
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Öncelik kuyrukları,
• artan ve azalan
olmak üzere ikiye ayrılırlar.
• Diğer veri yapılarında olduğu gibi kuyrukta
bulunan elemanlar, string veya integer gibi
basit veri türünde olabileceği gibi özelliklere
(attribute) sahip bir nesne de olabilir.
• Öncelik kriterinin ne olacağı kuyruktan kuyruğa
değişkenlik gösterir.
• Kuyruğa eklenen elemanın kendisi veya
herhangi bir özelliği, öncelik kriteri olabilir.
Öncelik Kuyruğu (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Örneğin; telefon rehberi uygulamasında,
• Kuyruktaki her eleman soyad, ad, adres ve telefon
numarası özelliklerinden oluşmakta ve kuyruk
soyada göre sıralanmaktadır.
• Öncelik kuyrukları;
• Dizi
• Bağlı Liste
• Binary Heap
kullanılarak implemente edilebilir.
Öncelik Kuyruğu (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Öncelik kuyruğunu gerçekleştirmek için
• Heap gerçekleştirimindeki:
o Insert() ve
o RemoveMax()
fonksiyonlarını aynen veya biraz değişiklikle
kullanabiliriz.
Queue İşlem Karmaşıklığı
İşlem Dizi
Öncelik
Kuyruğu
Heap
Öncelik
Kuyruğu
Insert O(n) O(logn)
Remove O(1) O(logn)
Heap Sort
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Heap ağacı kullanarak nasıl sıralama yaparız?
Adım 1: Heap ağacı oluştur ve sıralanmamış
diziyi okuyarak, her bir elemanı ağaca ekle.
Adım 2:
1. Ağacın en büyük elemanını oku.
2. Elemanı yeni bir diziye ata.
3. Ağacı yeniden oluştur.
4. İlk 3 adımı ağaçta eleman kalmayana kadar
tekrarla.
Heap Sort (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Heap Sort (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Big O karmaşıklığı nedir?
O(nlogn)
Örnek Sorular
İYİ ÇALIŞMALAR…
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Yararlanılan Kaynaklar
• Ders Kitabı:
• Data Structures through JAVA, V.V.Muniswamy
• Yardımcı Okumalar:
• Data Structures and Algorithms in Java, Narashima
Karumanchi
• Data Structures, Algorithms and Applications in Java,
Sartaj Sahni
• Algorithms, Robert Sedgewick
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Más contenido relacionado

La actualidad más candente

Selection sort
Selection sortSelection sort
Selection sort
Jay Patel
 

La actualidad más candente (20)

Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search TreeYzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
 
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Yzm 2116  - Bölüm 2 (Algoritma Analizi)Yzm 2116  - Bölüm 2 (Algoritma Analizi)
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
 
Siralama algoritmalari ileri algoritma analizi
Siralama algoritmalari   ileri algoritma analiziSiralama algoritmalari   ileri algoritma analizi
Siralama algoritmalari ileri algoritma analizi
 
BINARY SEARCH TREE
BINARY SEARCH TREE BINARY SEARCH TREE
BINARY SEARCH TREE
 
DSA (Data Structure and Algorithm) Questions
DSA (Data Structure and Algorithm) QuestionsDSA (Data Structure and Algorithm) Questions
DSA (Data Structure and Algorithm) Questions
 
Bilgisayar Mimarisi 05, Feza BUZLUCA
Bilgisayar Mimarisi 05, Feza BUZLUCABilgisayar Mimarisi 05, Feza BUZLUCA
Bilgisayar Mimarisi 05, Feza BUZLUCA
 
Clustering Analysis DBSCAN & SOM
Clustering Analysis DBSCAN & SOMClustering Analysis DBSCAN & SOM
Clustering Analysis DBSCAN & SOM
 
Heap_Sort1.pptx
Heap_Sort1.pptxHeap_Sort1.pptx
Heap_Sort1.pptx
 
Red black tree
Red black treeRed black tree
Red black tree
 
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
 
Linked list
Linked listLinked list
Linked list
 
B trees and_b__trees
B trees and_b__treesB trees and_b__trees
B trees and_b__trees
 
Bilgisayar Mimarisi 01, Feza BUZLUCA
Bilgisayar Mimarisi 01, Feza BUZLUCABilgisayar Mimarisi 01, Feza BUZLUCA
Bilgisayar Mimarisi 01, Feza BUZLUCA
 
Introduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculus
 
Sas practice programs
Sas practice programsSas practice programs
Sas practice programs
 
Stacks and Queue - Data Structures
Stacks and Queue - Data StructuresStacks and Queue - Data Structures
Stacks and Queue - Data Structures
 
Red black tree
Red black treeRed black tree
Red black tree
 
arboles avl con codigo en java
arboles avl con codigo en javaarboles avl con codigo en java
arboles avl con codigo en java
 
Selection sort
Selection sortSelection sort
Selection sort
 
GAC DS Priority Queue Presentation 2022.ppt
GAC DS Priority Queue Presentation 2022.pptGAC DS Priority Queue Presentation 2022.ppt
GAC DS Priority Queue Presentation 2022.ppt
 

Yzm 2116 Bölüm 9 - Heap Binary Tree

  • 1. YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği
  • 2. BÖLÜM - 9 Bu bölümde, • Hatırlatmalar • Tam İkili Ağaç • Eksiksiz İkili Ağaç • Dizi Kullanarak İkili Ağaç Gerçekleştirimi • Heap, Max Heap, Min Heap • Öncelik Kuyruğu • HeapSort konusuna değinilecektir. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 3. Hatırlatmalar… • Tam İkili Ağaç (Full Binary Tree) • Eksiksiz İkili Ağaç (Complete Binary Tree) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Neydi?
  • 4. 4Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Tam İkili Ağaç (Full Binary Tree) • Her bir düğümün (i)net olarak iki çocuk düğüme sahip olduğu ve (ii)yaprak düğümlerin aynı seviyede olduğu ikili ağaçtır. • Her düğüm, eşit şekilde sağ ve sol alt-ağaçlara sahiptir.
  • 5. 5Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Eksiksiz İkili Ağaç (Complete Binary Tree) • Son seviye dışındaki tüm seviyelerin tam (full) olduğu ikili ağaç türüdür. • Düğümleri sol taraftan (düğüme göre) doldurulur. • Yeni bir derinliğe soldan sağa doğru ekleme başlanır.
  • 6. 6Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Eksiksiz İkili Ağaç (Complete Binary Tree) (devam…)
  • 7. 7Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları SORU DİZİ KULLANARAK İKİLİ AĞAÇ GERÇEKLEŞTİREBİLİR MİYİZ?
  • 8. 8Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi • Bellek kullanım tasarrufu sağlar (işaretçi yok vs.). • Düğümler arası linkler olmadığı halde, ağaç üzerindeki düğümlerde aile ilişkisi korunur (parent-child). • Gezinmeyi basitleştirir. • Veriyi Saklama Şekli i. Seviye-seviye (level-by-level) ii. Soldan-sağa (left-to-right)
  • 9. 9Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…) Soru: Aşağıdaki ikili ağacı dizide nasıl tutarız?
  • 10. 10Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…) Cevap: Kök’ü 0’dan başlatarak, sol-sağ kolları her seviyede dizi indisleri şeklinde arttırarak numaralayıp diziye atabiliriz.
  • 11. 11Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…) 0 1 2 43 5 6 7 8 9
  • 12. 12Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…) • tree.nodes[index] düğümü ifade etmek üzere • Parent-child ilişkisi: – Sol çocuk = tree.nodes[2*index+1] – Sağ çocuk = tree.nodes[2*index+2] – Parent düğüm = tree.nodes[(index-1)/2] • Yaprak düğümler: – tree.nodes[numElements/2] - tree.nodes[numElements-1] (tam sayı bölüm)
  • 13. 13Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…) Örnek: 1 indisli D düğümü için … Sol çocuk indisi ([2*index+1]): 3 Sağ çocuk indisi ([2*index+2]): 4 Parent indisi([(index-1)/2]): 00 1 2 43 5 6 7 8 9
  • 14. 14Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…) • Tam veya eksiksiz ikili ağaçlar, diziler ile çok basit ve etkin şekilde gerçekleştirilebilirler. • Dizide boş alan kalmaz. • Tam tersi durumdaki ikili ağaçlarda mutlaka boş yer kullanmak gerekir.
  • 15. 15Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Heap Nedir? • Aşağıdaki özelliklere sahip ikili ağaçtır: – Özellik 1: Eksiksiz (complete) ikili ağaçtır. – Özellik 2 (Heap özelliği): Ebeveyn (parent) düğümün değeri her zaman çocukların değerinden büyük (küçük) veya eşittir. • Max Heap: Kök en büyük değere sahiptir. • Min Heap: Kök en küçük değere sahiptir.
  • 16. 16Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Max ve Min Heap Max HeapMin Heap
  • 17. 17Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Heap Gerçekleştirimi
  • 18. 19 4222127 23 45 35 Heap h = new Heap(100); h.Insert(45); h.Insert(35); h.Insert(23); h.Insert(27); h.Insert(21); h.Insert(22); h.Insert(4); h.Insert(19); Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Heap Oluşturma
  • 19. • Adım 1: Yeni düğümü seviye-seviye soldan- sağa olacak şekilde ilk uygun yere ekle. 19 4222127 23 45 35 42 Heap Insert(42)
  • 20. • Adım 2: Eklenen yeni düğümü, ebeveyn ile karşılaştırarak yukarı doğru taşı. • Adım 3: Uygun yer bulana kadar Adım 2 tekrarla. 19 4222142 23 45 35 27 Heap Insert(42)
  • 21. 19 4222135 23 45 42 27 Heap Insert(42) • Adım 2: Eklenen yeni düğümü, ebeveyn ile karşılaştırarak yukarı doğru taşı. • Adım 3: Uygun yer bulana kadar Adım 2 tekrarla.
  • 23. Max Elemanı Silme (RemoveMax) 19 4222135 23 45 42 27 • Adım 1: Son eleman kök eleman yerine taşınır. • Örnekte, 27 elemanı köke taşınır.
  • 24. 19 4222135 23 27 42 Max Elemanı Silme (RemoveMax) • Adım 1: Tamamlandı. Ancak, Heap özelliğinin tekrar kurulması gerekiyor.
  • 25. 19 4222135 23 27 42 Max Elemanı Silme (RemoveMax) • Adım 2: Eklenen yeni düğümü, büyük çocuğu ile yer değiştirecek şekilde aşağıya doğru taşı.
  • 26. 19 4222135 23 42 27 • Adım 2: Eklenen yeni düğümü, büyük çocuğu ile yer değiştirecek şekilde aşağıya doğru taşı. • Adım 3: Adım 2’yi tekrarla. Max Elemanı Silme (RemoveMax)
  • 27. 19 4222127 23 42 35 • Adım 2: Eklenen yeni düğümü, büyük çocuğu ile yer değiştirecek şekilde aşağıya doğru taşı. • Adım 3: Adım 2’yi tekrarla. Max Elemanı Silme (RemoveMax)
  • 30. Heap Ağacı Uygulamaları Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Öncelik Kuyruğu (Priority Queue) Heap Sıralama Algoritması (Heap Sort)
  • 31. Öncelik Kuyruğu Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Öncelik kuyrukları, • artan ve azalan olmak üzere ikiye ayrılırlar. • Diğer veri yapılarında olduğu gibi kuyrukta bulunan elemanlar, string veya integer gibi basit veri türünde olabileceği gibi özelliklere (attribute) sahip bir nesne de olabilir. • Öncelik kriterinin ne olacağı kuyruktan kuyruğa değişkenlik gösterir. • Kuyruğa eklenen elemanın kendisi veya herhangi bir özelliği, öncelik kriteri olabilir.
  • 32. Öncelik Kuyruğu (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Örneğin; telefon rehberi uygulamasında, • Kuyruktaki her eleman soyad, ad, adres ve telefon numarası özelliklerinden oluşmakta ve kuyruk soyada göre sıralanmaktadır. • Öncelik kuyrukları; • Dizi • Bağlı Liste • Binary Heap kullanılarak implemente edilebilir.
  • 33. Öncelik Kuyruğu (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Öncelik kuyruğunu gerçekleştirmek için • Heap gerçekleştirimindeki: o Insert() ve o RemoveMax() fonksiyonlarını aynen veya biraz değişiklikle kullanabiliriz.
  • 34. Queue İşlem Karmaşıklığı İşlem Dizi Öncelik Kuyruğu Heap Öncelik Kuyruğu Insert O(n) O(logn) Remove O(1) O(logn)
  • 35. Heap Sort Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Heap ağacı kullanarak nasıl sıralama yaparız? Adım 1: Heap ağacı oluştur ve sıralanmamış diziyi okuyarak, her bir elemanı ağaca ekle. Adım 2: 1. Ağacın en büyük elemanını oku. 2. Elemanı yeni bir diziye ata. 3. Ağacı yeniden oluştur. 4. İlk 3 adımı ağaçta eleman kalmayana kadar tekrarla.
  • 36. Heap Sort (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 37. Heap Sort (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Big O karmaşıklığı nedir? O(nlogn)
  • 39. İYİ ÇALIŞMALAR… Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 40. Yararlanılan Kaynaklar • Ders Kitabı: • Data Structures through JAVA, V.V.Muniswamy • Yardımcı Okumalar: • Data Structures and Algorithms in Java, Narashima Karumanchi • Data Structures, Algorithms and Applications in Java, Sartaj Sahni • Algorithms, Robert Sedgewick Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları