ADVANCED DATA STRUCTURES & ALGORITHMS IN JAVA: SORTING & SEARCHING ALGORITHMS EĞİTİMİ

Sıralama ve aramayı Java ile sıfırdan kodla

Bubble, merge, quick sort ile ikili ve interpolasyon aramasını Java'da yazın, Big-O ile karşılaştırın ve ölçün.

Java Sıralama ve Arama Algoritmaları eğitimi 2 günlük uygulamalı programda big-o ve ölçüm, basit sıralamalar, merge sort, quick sort ve heap sort gibi konuları kapsar.

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

Eğitim Hakkında

Karşılaştırmalı sıralama, ikili arama ve Big-O analizi

Bu eğitim, Java ile temel ve ileri sıralama/arama algoritmalarını uygulamalı olarak işler. Selection, insertion ve bubble sort ile başlayıp merge sort, quick sort (Lomuto ve Hoare bölümlemesi), heap sort ve counting/radix sort gibi doğrusal zamanlı yöntemlere geçilir. Doğrusal, ikili ve interpolasyon aramasının sınır koşulları, kararlılık (stability) ve yerinde sıralama kavramları, Comparable/Comparator tasarımı ile JMH ve System.nanoTime üzerinden performans ölçümü ele alınır.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar sıralama algoritmaları konusundan başlayıp doğrusal sıralama ve arama konusuyla tamamlar.

Seviye

İleri Seviye — Java ile sıralama ve arama algoritmalarının uygulanması, karmaşıklık analizi ve performans ölçümü.

Öğrenme Metodu

Her algoritma önce tahtada izlenir, ardından Java'da yazılır, JUnit ile test edilir ve farklı veri boyutlarında ölçülür.

Neden Bu Eğitim?

⏱️Karmaşıklık Sezgisi

O(n log n) ile O(n²) farkını kendi ölçümlerinizle görür, algoritma seçimini veriye dayandırırsınız.

🧪Test Edilmiş Kod

Sınır durumlarını JUnit ile doğrulayarak hatasız çalışan sıralama kodu yazarsınız.

🎯Mülakat Hazırlığı

Quick sort pivot seçimi ve binary search taşma hatası gibi sık sorulan konulara hakim olursunuz.

Anahtar Konular

java sıralama algoritmalarıjava arama algoritmalarımerge sort javaquick sort javabinary search javabig o notasyonujava algoritma eğitimicounting sortradix sortcomparator java
“Doğru algoritma, aynı donanımı yüz kat hızlı yapar.”

Ö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ı, karşılaştırmalı sıralama algoritmalarını Java'da yazar ve zaman karmaşıklıklarını gerekçelendirir.
Modül 1
Big-O ve Ölçüm
  • Asimptotik gösterim: O, Omega ve Theta farkı
  • En iyi, ortalama ve en kötü durum analizi
  • Alan karmaşıklığı ve yerinde (in-place) sıralama
  • Kararlı (stable) sıralama kavramı ve örnekleri
  • System.nanoTime ile mikro ölçümün tuzakları
  • JMH ile güvenilir benchmark kurulumu
Modül 2
Basit Sıralamalar
  • Bubble sort ve erken çıkış bayrağı optimizasyonu
  • Selection sort ve takas sayısı analizi
  • Insertion sort ve neredeyse sıralı veride avantajı
  • Shell sort ve boşluk (gap) dizileri
  • Sıralama sırasında adım izleyen görselleştirme çıktısı
  • Üç yöntemin 10 bin elemanda süre karşılaştırması
Modül 3
Merge Sort
  • Böl-ve-yönet mantığı ve özyineleme ağacı
  • Yardımcı dizi ile birleştirme (merge) adımı
  • Özyinelemeli ve aşağıdan yukarı (bottom-up) uygulama
  • Master teoremi ile T(n)=2T(n/2)+n çözümü
  • Bağlı liste için merge sort uyarlaması
  • Dış sıralama (external sort) fikri ve büyük dosyalar
Modül 4
Quick Sort ve Heap Sort
  • Lomuto ve Hoare bölümleme şemaları
  • Pivot seçimi: ilk, rastgele ve median-of-three
  • Tekrarlı anahtarlarda üçlü bölümleme (Dutch flag)
  • Özyineleme derinliği ve en kötü durum O(n²)
  • Heap sort ile yerinde O(n log n) sıralama
  • Arrays.sort içindeki dual-pivot quicksort ve TimSort farkı
Günün hedefiKatılımcı, arama algoritmalarını sınır koşullarıyla doğru yazar ve sıralama yöntemlerini veriye göre seçer.
Modül 1
Doğrusal Zamanlı Sıralama
  • Counting sort ve kümülatif sayım dizisi
  • Radix sort: LSD ve MSD yaklaşımı
  • Bucket sort ve düzgün dağılım varsayımı
  • Karşılaştırmalı sıralamanın Omega(n log n) alt sınırı
  • Kararlılığın radix sort için neden zorunlu olduğu
  • Tamsayı, String ve negatif sayılar için uyarlamalar
Modül 2
Doğrusal ve İkili Arama
  • Doğrusal arama ve sentinel tekniği
  • İkili aramada alt ve üst sınır güncelleme kuralları
  • mid = low + (high - low)/2 ile taşma hatasından kaçınma
  • Özyinelemeli ve yinelemeli ikili arama
  • İlk ve son oluşum bulma varyantları
  • Arrays.binarySearch ve Collections.binarySearch kullanımı
Modül 3
İleri Arama Teknikleri
  • Interpolasyon araması ve dağılıma bağlı performans
  • Exponential (galloping) arama
  • Jump search ve blok boyutu seçimi
  • Dönmüş sıralı (rotated) dizide arama
  • Sonuç uzayında ikili arama: kare kök ve kapasite problemleri
  • Hash tabanlı arama ile O(1) beklenen süre karşılaştırması
Modül 4
Comparator ve Performans
  • Comparable ile doğal sıralama sözleşmesi
  • Comparator.comparing ve thenComparing zincirleri
  • Null ve eşitlik güvenli karşılaştırma tasarımı
  • Genel sıralama metodu yazma: <T extends Comparable<? super T>>
  • JUnit 5 ile sınır durum ve rastgele veri testleri
  • Sonuçları tablo halinde yorumlayıp algoritma seçme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Sıralama Hakimiyeti

Selection, insertion, merge, quick ve heap sort algoritmalarını Java'da sıfırdan yazabilirsiniz.

🧠
Karmaşıklık Analizi

Algoritmaların en iyi, ortalama ve en kötü durum karmaşıklığını Big-O ile açıklayabilirsiniz.

⚙️
Doğru İkili Arama

Taşma ve sınır hatası içermeyen ikili arama varyantlarını uygulayabilirsiniz.

🔍
Doğrusal Sıralama

Counting ve radix sort yöntemlerini uygun veri tiplerinde kullanabilirsiniz.

🛠️
Kararlılık Bilinci

Kararlı ve kararsız sıralamaların sonuç farkını örneklerle gösterebilirsiniz.

📈
Comparator Tasarımı

Çok alanlı nesneler için güvenli Comparator zincirleri oluşturabilirsiniz.

🧩
Ölçüm Becerisi

JMH ve nanoTime ile algoritmaları farklı veri boyutlarında ölçebilirsiniz.

🚀
Doğru Seçim

Veri özelliklerine göre en uygun sıralama veya arama yöntemini seçebilirsiniz.

Kimler İçin Uygundur?

  • Java bilen yazılımcılar
  • algoritma mülakatlarına hazırlanan geliştiriciler
  • Big-O analizini kodla pekiştirmek isteyen mühendislik öğrencileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java bilen yazılımcılar, algoritma mülakatlarına hazırlanan geliştiriciler ve Big-O analizini kodla pekiştirmek isteyen mühendislik öğrencileri için uygundur.
Quick sort ile merge sort arasındaki fark eğitimde nasıl ele alınır?
İkisi de Java'da yazılır; quick sort pivot seçimi ve en kötü durum O(n²) riski, merge sort ise ek bellek ve kararlılık açısından ölçümlerle karşılaştırılır.
İkili aramadaki yaygın hatalar gösterilecek mi?
Evet. mid hesabında tamsayı taşması, sonsuz döngüye yol açan sınır güncellemeleri ve yinelenen anahtarlarda ilk/son oluşum bulma uygulamalı olarak işlenir.
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: Sorting & Sea 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 JVMData Structures & Algorithms in Java: Doubly & Circular Linked Lists Eğitimi
Yazılım Geliştirme Eğitimleri

Data Structures & Algorithms in Java: Doubly & Circular Linked Lists Eğitimi

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

Java doubly ve circular linked list eğitimi: Node yapısı, ekleme, silme, tersleme, Floyd döngü tespiti, Josephus problemi ve LRU önbellek uygulaması.

Detayları Gör →
Java ve JVMData Structures & Algorithms in Java: Introduction Eğitimi
Yazılım Geliştirme Eğitimleri

Data Structures & Algorithms in Java: Introduction Eğitimi

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

Java ile veri yapıları ve algoritmalara giriş: Big-O, dizi, bağlı liste, stack, queue, HashMap, BST, heap ve sıralama algoritmalarını Java ile öğrenin.

Detayları Gör →
Java ve JVMData Structures & Algorithms in Java: Working with Queues Eğitimi
Yazılım Geliştirme Eğitimleri

Data Structures & Algorithms in Java: Working with Queues Eğitimi

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

Java kuyruk (queue) veri yapısı eğitimi: Queue, Deque, circular queue, PriorityQueue, BlockingQueue, üretici-tüketici ve BFS uygulamalarıyla uygulamalı Java.

Detayları Gör →
Java ve JVMData Structures & Algorithms in Java: Working with Singly Linked Lists Eğitimi
Yazılım Geliştirme Eğitimleri

Data Structures & Algorithms in Java: Working with Singly Linked Lists Eğitimi

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

Java tek yönlü bağlı liste eğitimi: Node yapısı, ekleme, silme, tersleme, slow-fast işaretçi, birleştirme ve mülakat problemleri ile uygulamalı veri yapıları.

Detayları Gör →
Java ve JVMData Structures & Algorithms in Java: Working with Stacks Eğitimi
Yazılım Geliştirme Eğitimleri

Data Structures & Algorithms in Java: Working with Stacks Eğitimi

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

Java stack (yığın) veri yapısı eğitimi: dizi ve liste ile gerçekleme, ArrayDeque, parantez kontrolü, infix-postfix dönüşümü, monotonic stack ve undo/redo.

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