Doğrusal Arama Algoritması (Linear Search), elde bulunan veriyi baştan sona kadar tarayarak gerçekleştirilen algoritmadır.
Bu makale içerisinde doğrusal arama algoritması detaylıca incelenecektir. Algoritma mantığını anladığınız taktirde her programlama dilinde rahatlıkla kullanabilir ve sonuca daha hızlı ulaşabilirsiniz.
Doğrusal Arama
Elimizde bir dizi var ve bu dizi içerisindeki herhangi bir veriye ulaşmak istiyoruz. Bunun için genellikle gerçekleştirilen bir yapı olan doğrusal arama, aranan veriyi tüm veriler içerisinde baştan sona tarayarak bulmaya çalışır.
Algoritmayı Çalıştıralım
Üzerinde çalışma yapacağımız kod yapısı C++ olacaktır. Sayfanın en altında PHP dilinde de aynı algoritmayı çalıştıran bir kod yapısı bıraktım.
Öncelikle bir dizi oluşturalım.
int dizi[20] = {1, 2, 3, 5, 8, 9, 10, 12, 13, 16, 18, 21, 22, 23, 24, 25, 27, 28, 30, 32};
Yukarıdaki dizimiz 20 elemanlı bir dizidir. Bu dizi içerisinde bir arama yapacağız. Algoritma olarakta doğrusal arama algoritmasını tercih edeceğiz.
Örneğin 25 sayısını arıyoruz. Bilgisayar diziyi baz alarak şöyle çalışacaktır;
- 25 sayısı 1'e eşit mi? Değil
- 25 sayısı 2'ye eşit mi? Değil
- 25 sayısı 3'e eşit mi? Değil
- 25 sayısı 5'e eşit mi? Değil
- 25 sayısı 8'e eşit mi? Değil
- 25 sayısı 9'a eşit mi? Değil
- 25 sayısı 10'a eşit mi? Değil
- 25 sayısı 12'ye eşit mi? Değil
- 25 sayısı 13'e eşit mi? Değil
- 25 sayısı 16'ya eşit mi? Değil
- 25 sayısı 18'e eşit mi? Değil
- 25 sayısı 21'e eşit mi? Değil
- 25 sayısı 22'ye eşit mi? Değil
- 25 sayısı 23'e eşit mi? Değil
- 25 sayısı 24'e eşit mi? Değil
- 25 sayısı 25'e eşit mi? Eşit
Yani tüm bu işlemleri 16 adımda gerçekleştirecektir. Elbette aranan sayıya bağlı olarak bu durum azalabilir veya artabilir. Dizinin sıralı olmasına gerek yoktur!
C++'ta
int main() {
int dizi[20] = {1, 2, 3, 5, 8, 9, 10, 12, 13, 16, 18, 21, 22, 23, 24, 25, 27, 28, 30, 32};
int aranan = 33;
int i = 0;
bool kontrol = false;
while(i<20) {
if(dizi[i] == aranan) {
kontrol = true;
cout << aranan << " degeri dizi icerisinde bulunmaktadir.";
break;
}
i = i+1;
}
if(kontrol == false) {
cout << aranan << " degeri dizi icerisinde bulunmamaktadir.";
}
}
PHP'de
<?php
$dizi = array(1, 2, 3, 5, 8, 9, 10, 12, 13, 16, 18, 21, 22, 23, 24, 25, 27, 28, 30, 32);
$aranan = 25;
$i = 0;
$kontrol = false;
while ($i < 20) { // 20 sayısı dizinin eleman sayısıdır.
if($dizi[$i] == $aranan) {
$kontrol = true;
echo $aranan." değer dizi içerisinde <b>bulunmaktadır.</b>";
break;
}
$i = $i + 1;
}
if($kontrol == false) {
echo $aranan." değer dizi içerisinde <b>bulunmamaktadır.</b>";
}
?>
Kodları İncelediğimizde;
Klasik olarak bilinen sırayla arama yaptırma işlemini uyguladık. While döngüsü içerisinde dizinin tüm elemanlarını tek tek kontrol ettirdik.