İçeriğe geç
parazade

Doğrusal Arama Nedir?

İngilizce: Linear Search

Yayın: · Son güncelleme:

Doğrusal Arama Nedir? Kısaca

Doğrusal arama (linear search), bir listedeki elemanları baştan başlayarak tek tek kontrol eden ve aranan değeri bulduğunda duran en basit arama yöntemidir. Liste sıralı olmasa da çalışır.

Doğrusal Arama nedir?
İçindekiler
  1. Doğrusal arama nedir?
  2. Nasıl çalışır?
  3. Avantajları ve sınırları

Doğrusal arama nedir?

Doğrusal arama, bir listede aradığınız değeri ilk elemandan başlayıp sırayla kontrol ederek bulma yöntemidir. Eleman bulunduğunda arama durur ve konumu döndürülür. Listenin sonuna gelindiği hâlde değer bulunamazsa sonuç "yok" olur. Sıralı arama olarak da adlandırılır.

Nasıl çalışır?

Bir çekmecede anahtarınızı aradığınızı düşünün. Eşyaları tek tek eline alıp bakarsınız; anahtarı bulduğunuz anda durursunuz. Doğrusal arama da bu mantıkla çalışır.

Kodda bunun karşılığı tek bir döngüdür. Örneğin [12, 7, 31, 5, 18] listesinde 5 değerini arayalım. Algoritma 12'ye, 7'ye ve 31'e bakar, dördüncü adımda 5'i bulur ve 3 numaralı konumu döndürür. Aradığınız 40 olsaydı, beş elemanın hepsi kontrol edilir ve "bulunamadı" sonucu verilirdi.

Avantajları ve sınırları

En büyük avantajı basitliğidir. Listenin sıralı olması gerekmez ve neredeyse her veri yapısında uygulanabilir. Küçük listelerde, örneğin 20-30 elemanlık bir menü listesinde, daha karmaşık yöntemlere hiç gerek yoktur.

Sorun veri büyüdüğünde başlar. Bir milyon elemanlı bir listede aranan değer sonda ise bir milyon karşılaştırma yapılır. Aynı liste sıralı olsaydı ikili arama bu işi 20 civarı adımda bitirirdi. Uygulamanızda aynı listede sürekli arama yapıyorsanız, veriyi bir kez sıralamak ya da bir sözlük yapısına aktarmak çoğu zaman büyük kazanç sağlar. Python'daki in operatörü ve JavaScript'teki indexOf listelerde arka planda doğrusal arama yapar.

Sıkça Sorulan Sorular

Doğrusal aramanın zaman karmaşıklığı nedir?

O(n) olarak ifade edilir. Liste iki katına çıkarsa en kötü durumda gereken adım sayısı da iki katına çıkar.

Doğrusal arama ne zaman tercih edilir?

Liste küçükse, sıralı değilse ya da yalnızca bir kez arama yapılacaksa doğrusal arama yeterlidir. Büyük ve sık aranan verilerde ise sıralayıp ikili arama yapmak ya da hash tablosu kullanmak daha verimlidir.

İlgili terimler

İkili Arama(Binary Search)İkili arama (binary search), sıralı bir listede aranan değeri her adımda listenin ortasındaki elemanla karşılaştırıp arama alanını yarıya indiren arama algoritmasıdır. Bir milyon elemanlı listede bile yaklaşık 20 adımda sonuca ulaşır.Big O Notasyonu(Big O Notation)Big O notasyonu, bir algoritmanın çalışma süresinin ya da bellek kullanımının girdi büyüdükçe nasıl arttığını ifade eden matematiksel gösterimdir. Algoritmaları donanımdan bağımsız biçimde karşılaştırmayı sağlar.Zaman Karmaşıklığı(Time Complexity)Zaman karmaşıklığı, bir algoritmanın girdi boyutu büyüdükçe kaç adım attığını, yani çalışma süresinin nasıl arttığını ölçen kavramdır. Genellikle Big O notasyonuyla ifade edilir.Dizi(Array)Dizi (array), programlamada aynı isim altında birden fazla değeri sıralı biçimde saklayan veri yapısıdır. Her elemana sıra numarası olan indeks ile erişilir ve çoğu dilde indeks 0'dan başlar.Algoritma(Algorithm)Algoritma, belirli bir problemi çözmek ya da bir görevi yerine getirmek için izlenen, sırası ve sonu belli, açık ve uygulanabilir adımlar dizisidir. Bilgisayar programları ve yapay zekâ sistemleri algoritmalar üzerine kuruludur.Liste(List)Liste (list), programlamada birden fazla değeri sıralı tutan, eleman eklenip çıkarılabilen ve değiştirilebilen veri yapısıdır. Python'da köşeli parantezle yazılır: `meyveler = ["elma", "armut"]`.Sözlük(Dictionary)Sözlük (dictionary), programlamada verileri anahtar-değer çiftleri hâlinde saklayan veri yapısıdır. Her değere sıra numarasıyla değil, benzersiz bir anahtarla ulaşılır; örneğin `{"ad": "Ayşe", "yas": 32}`.