22 NİSAN 2017
CUMARTESİ
11.17
Algoritmalar - Doğrusal Arama Algoritması (Linear Search)

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;

  1. 25 sayısı 1'e eşit mi? Değil
  2. 25 sayısı 2'ye eşit mi? Değil
  3. 25 sayısı 3'e eşit mi? Değil
  4. 25 sayısı 5'e eşit mi? Değil
  5. 25 sayısı 8'e eşit mi? Değil
  6. 25 sayısı 9'a eşit mi? Değil
  7. 25 sayısı 10'a eşit mi? Değil
  8. 25 sayısı 12'ye eşit mi? Değil
  9. 25 sayısı 13'e eşit mi? Değil
  10. 25 sayısı 16'ya eşit mi? Değil
  11. 25 sayısı 18'e eşit mi? Değil
  12. 25 sayısı 21'e eşit mi? Değil
  13. 25 sayısı 22'ye eşit mi? Değil
  14. 25 sayısı 23'e eşit mi? Değil
  15. 25 sayısı 24'e eşit mi? Değil
  16. 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.

YORUMLAR 0
Bu konuya henüz kimse yorum yapmadı.
İlk yorumu sen yapmak ister misin?
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et