Algo-I
11 Diziler Portfolyo KT3

Diziler II: Arama, Sıralama ve Kopyalama

Dizilerle klasik algoritmalar: aramak (doğrusal ve ikili), sıralamak, doğru kopyalamak ve diziyi metotlarla birlikte kullanmak. KT3 teslim haftası: dizi alıp tek değer döndüren metot.

Teori
Cuma 4 Aralık · A 09.15 / B 13.15
Laboratuvar
A Çarşamba 9 Aralık 13.15 · B Perşembe 10 Aralık 15.15(teoriden bir hafta sonra) Lab içeriği ↓
Ders planı
Doğrusal ve ikili arama, seçmeli sıralama, dizi kopyalama (sığ ve derin), diziyi metoda gönderme ve metottan dizi döndürme, java.util.Arrays

Teori

Öğrenme hedefleri

Bu haftanın sonunda:

  • 1 Doğrusal ve ikili aramayı yazar; adım sayılarını karşılaştırır.
  • 2 Seçmeli sıralamayı elle izler ve Java'da yazar.
  • 3 Sığ ve derin kopyalama farkını bellek çizimiyle açıklar.
  • 4 Dizi alan ve dizi döndüren metot yazar; değişikliğin çağırana yansıdığını fark eder.

Haftanın Bulmacası

Kart destesi: 16 kapalı kart, birini arıyorsunuz. Karışık desteyi en kötü kaç bakışta bulursunuz? Sıralı desteyi? (16 ve 4.) 6. haftanın sayı tahmin oyunu geri döndü; adı ikili arama.

Ders Notları

İşlenecek başlıklar:

  • Doğrusal arama: baştan sona; bulununca dur
  • İkili arama: sıralı dizide ortadan böl; adım sayısı log2(n)
  • Seçmeli sıralama (selection sort): en küçüğü bul, başa al
  • Dizi kopyalama: = ile sığ, döngüyle derin, System.arraycopy, Arrays.copyOf
  • Diziyi metoda gönderme: referans geçer, metot diziyi değiştirebilir
  • Metottan dizi döndürme; dizi ters çevirme
  • java.util.Arrays: sort, toString, fill, binarySearch
  • Harf sayma örneği (11-HarfSay), sayı analizi
  • KT3: dizi alıp tek değer döndüren metot + girdi doğrulayan metot

Temel Kavramlar

  • Doğrusal arama: Her elemana sırayla bakma; n adım.
  • İkili arama: Sıralı dizide aralığı yarıya bölerek arama; log n adım.
  • Seçmeli sıralama: Her turda kalanların en küçüğünü öne alma.
  • Sığ kopya: İki değişken aynı diziyi gösterir; biri değişince öteki de.
  • Derin kopya: Yeni dizi oluşturup elemanları tek tek kopyalama.

Sahadan Örnekler

  • Telefon rehberi: alfabetik sıralı olduğu için ikili arama; milyar kayıtta 30 adım.
  • Veritabanı indeksleri: sıralı tutulan sütunlar sayesinde arama saniyeler yerine milisaniyeler sürer; SQL’in altında bu haftanın algoritmaları var.

Laboratuvar

Bu haftanın laboratuvarı bir hafta sonra yapılır (A Çarşamba 13.15, B Perşembe 15.15): Lab 11. Tarihler için Ders Hakkında sayfasındaki takvime bakın.

Bu haftanın araçları

  • JDK 21
  • VS Code
  • GitHub Codespaces
  • java.util.Arrays

Etiketler:doğrusal aramaikili aramasıralamakopyalamaArraysKT3

Laboratuvar · Hafta 11

Lab 11 · Arama, Sıralama ve KT3 Teslimi

Doğrusal ve ikili arama, seçmeli sıralama, dizi kopyalama; portfolyonun metotlu ve dizili sürümünün (KT3) teslimi.

Yürüten
Arş. Gör. Ömer Miraç Kökçam
Laboratuvar sorumlu hocası
Tarihler (teoriden bir hafta sonra)
A Çarşamba 9 Aralık 13.15
B Perşembe 10 Aralık 15.15

Lab hedefleri

  • 1 Doğrusal ve ikili aramayı yazar; karşılaştırma sayılarını ölçer.
  • 2 Seçmeli sıralama ve derin kopyalama yazar.
  • 3 KT3: dizi alıp tek değer döndüren metot ve girdi doğrulayan metot içeren sürümü push eder.

Bu lab neyi uyguluyor?

11. haftanın teorisini. Laboratuvar teoriden bir hafta sonra yapılır: A şubesi Çarşamba 13.15, B şubesi Perşembe 15.15; tarihler Ders Hakkında takviminde.

Görevler

Teslim

Görev dosyalarınızı Classroom 50 bağlantısıyla açılan Lab 11 deponuza push edin (bağlantı lab günü verilir; depo adı algo1-lab11-KULLANICIADI). Otomatik kontrol sonucunu deponun Releases sayfasında görür, düzeltip tekrar push edebilirsiniz. Son teslim: lab haftasının Cuma 23.59’u. Lab’da lab sorumlu hocanıza 30 saniyede bir görevi anlatın. Portfolyo (KT3) ayrı bir depodur: kilometre taşı sürümünü lab deposuna değil, Classroom 50 ile verilen portfolyo deponuza push edin; onun son teslimi de aynı Cuma 23.59. Yapay zeka sarı bölge: soru sorabilirsiniz, kod kopyalayamazsınız.

Lab araçları

  • JDK 21
  • VS Code
  • GitHub Codespaces
  • Git

Lab sırasında kodu kendi bilgisayarınızda ya da Java Playground'da çalıştırabilirsiniz.