ünite 4 · Diziler
·
ders 4.2
Doğrusal arama
Aranan var mı, nerede? Baştan sona bak, bulunca dur.
7 dk
13 / 22
tamamlandı
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ır | i | yer | not |
|---|---|---|---|---|
| 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?
kendini sına Aranan eleman dizide yoksa doğrusal arama kaç karşılaştırma yapar?
Eleman sayısı kadar; hepsine bakmadan "yok" diyemez.
tamamlandı
İşaret bu tarayıcıda kalır. XP için
giriş yap — her ders +15 XP.