Dizilerde Kullanılan Arama Algoritmaları

Matematik

+2 Daha

fav gif
Kaydet
Alıntıla
kure star outline
dogrusalarama.webp
Doğrusal Arama

Dizilerde arama algoritmaları (Searching Algorithms in Arrays) belirli bir öğeyi bulmak için kullanılan sistematik yöntemlerdir. Bu algoritmalar, verilen bir dizinin içinde belirli bir değerin olup olmadığını kontrol etmeye yönelik tasarlanmıştır. Arama işleminin verimliliği, algoritmanın yapısına ve dizinin sıralı olup olmamasına bağlıdır.


Temelde en yaygın kullanılan 3 arama algoritması Doğrusal Arama (Linear Search), İkili Arama (Binary Search) ve İki İşaretçi Tekniği (Two Pointers Technique)'dir. Bu algoritmaların her biri, farklı veri yapılarına ve gereksinimlere göre avantajlar ve dezavantajlar sunar.

Doğrusal Arama (Linear Search)

Doğrusal arama, en basit ve en temel arama algoritmalarından biridir. Bu yöntemde, dizinin ilk elemanından başlanarak aranan öğe bulunana kadar her eleman tek tek kontrol edilir. Eğer öğe dizide bulunursa, ilgili indeks döndürülür; aksi takdirde "bulunamadı" sonucu verilir.


Bu algoritmanın zaman karmaşıklığı O(n) olup, büyük veri kümelerinde verimsiz olabilir. Sırasız diziler için en uygun yöntemlerden biridir.


Doğrusal Arama Adım 1 (Kaynak: www.geeksforgeeks.org)


Doğrusal Arama Adım 3 (Kaynak: www.geeksforgeeks.org)


C++ ile Doğrusal Arama Algoritması Kod Örneği

İkili Arama (Binary Search)

İkili arama algoritması, yalnızca sıralı dizilerde çalışan, oldukça verimli bir arama yöntemidir. Bu algoritma tekniğinde dizi sürekli sağ veya sol yarım olacak şekilde ikiye bölünür. Algoritma, dizinin ortasındaki elemanı seçerek aranan değerle karşılaştırır. Eğer aranan değer ortadaki elemandan küçükse sol yarıda, büyükse sağ yarıda aramaya devam edilir. Sürekli ikiye bölünen sonlu bir dizide nihayetinde sağ ve sol değerlerimiz birbirine eşit olacak ve arama sonlanacaktır.


Bu yöntem, O(log n) zaman karmaşıklığına sahiptir ve doğrusal aramaya kıyasla çok daha hızlıdır. Ancak, dizinin sıralı olması zorunluluğu vardır.


İkili Arama Başlangıç Görseli (Kaynak: www.geeksforgeeks.org)


İkili Arama Adım 1 (Kaynak: www.geeksforgeeks.org)


İkili Arama Adım 2 (Kaynak: www.geeksforgeeks.org)


İkili Arama Adım 3 (Kaynak: www.geeksforgeeks.org)


C++ ile İkili Arama Algoritması Kod Örneği

İki İşaretçi Tekniği (Two Pointers Technique)

İki işaretçi tekniği, özellikle sıralı dizilerde belirli bir hedef değere ulaşmak veya belirli bir koşulu sağlamak için kullanılır. Bu yöntemde, dizinin başında ve sonunda olmak üzere iki farklı işaretçi belirlenir. İşaretçiler, belirlenen koşula göre hareket ettirilerek istenilen sonuca ulaşılır.


Örneğin, belirli bir toplamı veren iki elemanı bulmak için bu yöntem kullanılır. İşaretçiler, toplam istenilenden büyükse sağa, küçükse sola kaydırılarak ilerletilir. O(n) zaman karmaşıklığına sahiptir ve büyük veri kümelerinde doğrusal aramaya göre daha verimlidir.


İki İşaretçi Tekniği Adım 1 (Kaynak: www.geeksforgeeks.org)


İki İşaretçi Tekniği Adım 2 (Kaynak: www.geeksforgeeks.org)


İki İşaretçi Tekniği Adım 3 (Kaynak: www.geeksforgeeks.org)


İki İşaretçi Tekniği Adım 4 (Kaynak: www.geeksforgeeks.org)


İki İşaretçi Tekniği Adım 5 (Kaynak: www.geeksforgeeks.org)


İki İşaretçi Tekniği Adım 6 (Kaynak: www.geeksforgeeks.org)


C++ ile İkili İşaretçi Algoritması Kod Örneği


Hangi Algoritma Hangi Koşullarda kullanılmalı?

Dizilerde kullanılan arama algoritmaları, performans açısından farklı avantajlar sunar.

  • Doğrusal arama, sırasız diziler için basit ve kolay bir yöntemdir ancak büyük veri kümelerinde verimsizdir.
  • İkili arama, sıralı dizilerde oldukça hızlıdır ve büyük veri kümeleri için daha uygundur.
  • İki işaretçi tekniği, belirli koşulları sağlayan problemlerde ekstra verimlilik sağlar.


Uygun algoritmanın seçimi, veri yapısının büyüklüğüne, sıralı olup olmamasına ve işlem gereksinimlerine bağlıdır. Optimal performans için en uygun arama algoritmasının belirlenmesi, sistem kaynaklarının etkin kullanımını sağlar.

Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
YazarAbdulsamet Ekinci13 Şubat 2025 17:29

Etiketler

Tartışmalar

Henüz Tartışma Girilmemiştir

"Dizilerde Kullanılan Arama Algoritmaları" maddesi için tartışma başlatın

Tartışmaları Görüntüle

İçindekiler

  • Doğrusal Arama (Linear Search)

    • C++ ile Doğrusal Arama Algoritması Kod Örneği

  • İkili Arama (Binary Search)

    • C++ ile İkili Arama Algoritması Kod Örneği

  • İki İşaretçi Tekniği (Two Pointers Technique)

    • C++ ile İkili İşaretçi Algoritması Kod Örneği

  • Hangi Algoritma Hangi Koşullarda kullanılmalı?

Bu madde yapay zeka desteği ile üretilmiştir.

KÜRE'ye Sor