canlı ~/duyurular $
Algoritma müfredatı
ünite 4 · Diziler · ders 4.2

Doğrusal arama

Aranan var mı, nerede? Baştan sona bak, bulunca dur.

7 dk 13 / 22

Sınıf listesinde bir numarayı arıyorsun: baştan başla, tek tek bak, bulunca dur. Bulamazsan sona kadar gitmişsindir. Buna doğrusal (sıralı) arama denir.

"Bulundu" bayrağı

Döngü bittiğinde bulup bulmadığını nasıl bileceksin? Bir bayrak değişkeni: başta bulundu ← YANLIŞ, eşleşince DOĞRU. Ya da bulunan indeksi sakla; -1 kaldıysa yok demektir.

Erken çıkış

Bulunca döngüyü sürdürmenin anlamı yok: DUR (C#: break). 1000 elemanlı dizide aradığın ilk sıradaysa 999 gereksiz adımdan kurtulursun.

En kötü durumda kaç adım? Eleman sayısı kadar. Dizi 10 kat büyürse arama 10 kat uzar — "doğrusal" adı buradan.
akış şeması elips: başla/bitir · dikdörtgen: işlem · paralelkenar: girdi/çıktı · baklava: karar
flowchart TD
  A[/aranan oku/] --> B[i = 0, yer = -1]
  B --> C{i #lt; uzunluk VE yer = -1 ?}
  C -- Evet --> D{dizi#91;i#93; = aranan ?}
  D -- Evet --> E[yer = i]
  D -- Hayır --> F[i = i + 1]
  E --> C
  F --> C
  C -- Hayır --> G[/yer yaz/]
sözde kod adımlar
1yer ← -12i ← 03İKEN i < uzunluk VE yer = -14  EĞER dizi[i] = aranan İSE yer ← i5  i ← i + 16DÖNGÜ SONU7EĞER yer = -1 İSE YAZ "yok" DEĞİLSE YAZ yer
aynısı C# ile C#
1int[] numaralar = { 104, 117, 121, 133, 142 };2int aranan = 133, yer = -1;3for (int i = 0; i < numaralar.Length; i++)4{5    if (numaralar[i] == aranan) { yer = i; break; }6}7Console.WriteLine(yer == -1 ? "yok" : "indeks " + yer);
adım adım izleme

Kutuların her adımdaki değeri. Kağıtta izleme tablosu tutarken tam bunu yaparsın.

#satıriyernot
1 i = 0: 104 = 133 ? 0 -1 Hayır
2 i = 1: 117 = 133 ? 1 -1 Hayır
3 i = 2: 121 = 133 ? 2 -1 Hayır
4 i = 3: 133 = 133 ? 3 3 Evet → yer = 3, dur
senin sıran

Bir dizide aranan değerin kaç kez geçtiğini say (erken çıkış yok!). Sonra ilk ve son geçtiği yerleri bul; ikisi için döngü yönü nasıl değişir?

Canlı Kod'da C# ile dene
kendini sına Aranan eleman dizide yoksa doğrusal arama kaç karşılaştırma yapar?
Eleman sayısı kadar; hepsine bakmadan "yok" diyemez.
İşaret bu tarayıcıda kalır. XP için giriş yap — her ders +15 XP.