ADVANCED DATA STRUCTURES & ALGORITHMS IN JAVA: WORKING WITH THE BINARY HEAP EĞİTİMİ

Binary heap ile öncelik kuyruğunu kendin yaz

Min-heap ve max-heap yapısını dizi üzerinde kurun, heapify ve heap sort yazın, PriorityQueue ile top-K problemlerini çözün.

Java Binary Heap ve Öncelik Kuyruğu eğitimi 2 günlük uygulamalı programda heap kavramları, ekleme ve silme, heapify ve heap sort, jenerik minheap sınıfı gibi konuları kapsar. Dizi tabanlı min-heap ve max-heap yapısını sıfırdan yazabilirsiniz.

2 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Dizi tabanlı heap, heapify, heap sort ve öncelik kuyruğu

Bu eğitim, ikili yığın (binary heap) veri yapısını Java ile dizi üzerinde gerçekler. Min-heap ve max-heap özellikleri, ebeveyn/çocuk indeks formülleri, siftUp ve siftDown işlemleri, O(n) süreli heapify (build-heap) analizi ve heap sort adım adım yazılır. java.util.PriorityQueue iç yapısı, Comparator ile özel öncelik, top-K eleman, k sıralı listeyi birleştirme, kayan medyan (iki heap), olay zamanlayıcı ve indeksli öncelik kuyruğu (decrease-key) gibi uygulama kalıpları ele alınır.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar binary heap yapısı konusundan başlayıp öncelik kuyruğu uygulamaları konusuyla tamamlar.

Seviye

İleri Seviye — Java ile ikili yığın (binary heap) uygulaması, heapify, heap sort ve öncelik kuyruğu kullanım kalıpları.

Öğrenme Metodu

Heap önce dizi üzerinde elle çizilerek izlenir, ardından jenerik MinHeap sınıfı yazılır ve PriorityQueue ile aynı problemler çözülerek sonuçlar ölçülür.

Neden Bu Eğitim?

⛰️Heap Hakimiyeti

siftUp ve siftDown mantığını dizi indeksleriyle kendiniz kodlarsınız.

🏆Top-K Çözümleri

Büyük veri akışında en büyük K elemanı bellek dostu yöntemle bulursunuz.

⚡Algoritma Altyapısı

Dijkstra, Huffman ve olay simülasyonunun temelindeki öncelik kuyruğunu anlarsınız.

Anahtar Konular

binary heap javapriority queue javaheap sort javamin heap max heaptop k elemanheapifyjava veri yapılarıkayan medyanjava algoritmaöncelik kuyruğu
“Öncelik, kuyruğun ne zaman değil, kimin önce çıkacağını belirler.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Temeli

Dizi, döngü, sınıf ve metot yazabilecek düzeyde Java bilgisi beklenir.

2
Temel Matematik

Logaritma, üs ve ardışık toplam gibi kavramlara aşinalık Big-O analizinde yardımcı olur.

3
Özyineleme

Basit özyinelemeli metotları (faktöriyel, Fibonacci) okuyabilmek faydalıdır.

4
Geliştirme Ortamı

JDK 17+, IDE ve JUnit çalıştırabilen bir bilgisayar gerekir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı, dizi tabanlı jenerik bir min-heap yazar ve heapify ile heap sort uygular.
Modül 1
Heap Kavramları
  • Tam ikili ağaç koşulu ve heap özelliği
  • Min-heap ve max-heap farkı
  • Ebeveyn: (i-1)/2, çocuklar: 2i+1 ve 2i+2 formülleri
  • Heap ile BST arasındaki farklar
  • Dizi tabanlı temsil ve dinamik büyütme
  • Heap yüksekliğinin log n olması
Modül 2
Ekleme ve Silme
  • add işlemi ve siftUp (bubble up)
  • poll/extractMin ve siftDown (bubble down)
  • peek işlemi O(1)
  • İki çocuktan küçük olanla yer değiştirme kuralı
  • Yinelemeli ve özyinelemeli siftDown
  • Rastgele indeksten silme ve remove(Object) maliyeti
Modül 3
Heapify ve Heap Sort
  • Build-heap: aşağıdan yukarı heapify
  • Heapify'ın O(n) olduğunun ispatı
  • n kez ekleme ile O(n log n) kıyası
  • Heap sort: kök ile son elemanı takas etme
  • Yerinde (in-place) heap sort uygulaması
  • Heap sort ile quick sort pratik performans farkı
Modül 4
Jenerik MinHeap Sınıfı
  • MinHeap<T extends Comparable<T>> tasarımı
  • Comparator alan kurucu (constructor)
  • Boş heap'te poll için hata politikası
  • Iterator ve toString ile durumu gözlemleme
  • JUnit 5 ile heap özelliği doğrulayan test
  • 1 milyon eleman üzerinde süre ölçümü
Günün hedefiKatılımcı, PriorityQueue ile top-K, birleştirme ve medyan problemlerini O(n log k) karmaşıklıkta çözer.
Modül 1
PriorityQueue Kullanımı
  • java.util.PriorityQueue iç yapısı ve ikili heap
  • offer, poll, peek ve remove karmaşıklıkları
  • Comparator ile max-heap oluşturma
  • Özel nesnelerde öncelik tanımı (görev, hasta, iş)
  • PriorityQueue'nun iterator sırasının garantisiz olması
  • Thread güvenli PriorityBlockingQueue farkı
Modül 2
Top-K Problemleri
  • En büyük K elemanı boyutu K min-heap ile bulma
  • K. en büyük elemanı bulma ve QuickSelect karşılaştırması
  • En sık geçen K kelime (HashMap + heap)
  • K en yakın nokta problemi
  • Akan veride sürekli en büyük K tutma
  • Bellek ve süre karmaşıklığı O(n log k) analizi
Modül 3
Birleştirme ve Medyan
  • K sıralı listeyi min-heap ile birleştirme
  • Sıralı dizi matrisinde K. küçük eleman
  • Kayan medyan: max-heap ve min-heap ikilisi
  • İki heap'in dengesini koruma kuralı
  • Toplantı odası (interval scheduling) problemi
  • Görev zamanlayıcıda bekleme süresi minimizasyonu
Modül 4
İleri Heap Konuları
  • İndeksli öncelik kuyruğu ve decrease-key
  • Dijkstra algoritmasında PriorityQueue rolü
  • Huffman kodlamasında minimum frekans seçimi
  • Ayrık olay simülasyonu için zaman çizelgesi kuyruğu
  • d-ary heap ve Fibonacci heap'e genel bakış
  • Heap seçim kriterleri: PriorityQueue, TreeSet, sıralı dizi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Heap Kodlama

Dizi tabanlı min-heap ve max-heap yapısını sıfırdan yazabilirsiniz.

🧠
Sift İşlemleri

siftUp ve siftDown mantığını doğru indekslerle uygulayabilirsiniz.

⚙️
Heapify Analizi

Build-heap işleminin neden O(n) olduğunu açıklayabilirsiniz.

🔍
Heap Sort

Yerinde çalışan heap sort algoritmasını yazıp ölçebilirsiniz.

🛠️
PriorityQueue

Comparator ile özel öncelikli PriorityQueue kullanabilirsiniz.

📈
Top-K Çözümü

Büyük veri akışında en büyük K elemanı O(n log k) sürede bulabilirsiniz.

🧩
Medyan Takibi

İki heap ile kayan medyan hesaplayabilirsiniz.

🚀
Algoritma Entegrasyonu

Dijkstra ve Huffman gibi algoritmalarda heap'in rolünü uygulayabilirsiniz.

Kimler İçin Uygundur?

  • Java ve temel veri yapılarını bilen geliştiriciler
  • öncelik kuyruğu tabanlı algoritmalar yazmak isteyen mühendisler
  • mülakat hazırlığındaki adaylar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java ve temel veri yapılarını bilen geliştiriciler, öncelik kuyruğu tabanlı algoritmalar yazmak isteyen mühendisler ve mülakat hazırlığındaki adaylar için uygundur.
PriorityQueue varken neden heap sıfırdan yazılır?
Sıfırdan yazım siftUp/siftDown ve indeksleme mantığını kavratır; ardından PriorityQueue'nun iç yapısı daha iyi anlaşılır ve özel durumlarda (decrease-key) kendi heap'inizi kurabilirsiniz.
Top-K problemi için hangi yöntemler karşılaştırılır?
Tam sıralama, boyutu K olan min-heap ve QuickSelect yöntemleri Java'da yazılıp farklı veri boyutlarında süre ve bellek açısından karşılaştırılır.
Eğitim için hangi ön bilgi ve ortam gerekir?
Dizi, döngü, sınıf ve metot yazabilecek düzeyde Java bilgisi beklenir. Logaritma, üs ve ardışık toplam gibi kavramlara aşinalık Big-O analizinde yardımcı olur. Basit özyinelemeli metotları (faktöriyel, Fibonacci) okuyabilmek faydalıdır.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. 2 günlük program boyunca uygulama çalışmalarının tamamlanması beklenir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced Data Structures & Algorithms in Java: Working with Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMGetting Started with Java: Operators Eğitimi
Yazılım Geliştirme Eğitimleri

Getting Started with Java: Operators Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Java operatörleri eğitimi: aritmetik, atama, karşılaştırma, mantıksal, bitwise, shift, üçlü operatör, öncelik kuralları ve integer overflow örnekleriyle başlang

Detayları Gör →
Java ve JVMGetting Started with Java: Variables & Primitive Types Eğitimi
Yazılım Geliştirme Eğitimleri

Getting Started with Java: Variables & Primitive Types Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Java değişkenleri ve primitive tipler eğitimi: int, double, char, boolean, referans tipler, String, wrapper sınıflar, tip dönüşümü ve değişken kapsamı ile başla

Detayları Gör →
Java ve JVMGetting Started with Java: Writing & Running Java Programs Eğitimi
Yazılım Geliştirme Eğitimleri

Getting Started with Java: Writing & Running Java Programs Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Java ile program yazma ve çalıştırma başlangıç eğitimi: JDK kurulumu, javac ve java komutları, JShell, paketler, Scanner, IntelliJ IDEA ve jar paketleme.

Detayları Gör →
Java ve JVMGoogle Workspace Spring Updates Eğitimi
Yazılım Geliştirme Eğitimleri

Google Workspace Spring Updates Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Google Workspace güncellemeleri eğitimi: Gmail, Chat, Meet, Drive etiketleri, Docs akıllı çipler, Sheets tabloları, Gemini ve yönetici konsolu güvenlik ayarları

Detayları Gör →
Java ve JVMGroovy Programlama Eğitimi
Yazılım Geliştirme Eğitimleri

Groovy Programlama Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Groovy programlama eğitimi: dinamik tipleme, closure, GString, koleksiyonlar, trait, metaprogramming, DSL, Spock testleri ile Gradle ve Jenkins pipeline betikle

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn