Yapay-Zeka.Org
   [ Ana Sayfa ]   [ Ansiklopedi ]   [ Kitaplar ]   [ Makaleler ]   [ Dosya Arşivi ]   [ Sık Sorulanlar ]   [ Giriş ]   [ Üye ol ]  
Ana Menü
Sitede Ara
Web'de Ara
Özlü Bir Söz
"Büyük adamların hataları güneş tutulmasına benzer, onları herkes görür." Cucong
Destekliyoruz:
Pardus... Özgürlük İçin...
Türkiye Mehmetçik'e, Mehmetçik Türk Milletine Emanettir.

İlgili Firmalar ve Destekleyici Bağlantılar

[Yapay Zeka Ansiklopedisi :: Algoritmalar (Algorithms) :: Arama Algoritmaları (Search Algorithms) :: Bu sayfa]  

İkili Arama (Binary Search)

İkili Arama, sıralı bir dizide, belirli değerin bulunmasına yönelik bir algoritmadır. Bu teknikteki her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin orta değer tarafından ikiye ayrılan kısımlardan hangisinde olduğu kontrol edilir, aranan değeri içeren kısım bir sonraki adımda arama yapılacak dizi olur ve bu sayede arama yapılan listedeki eleman sayısı her adımda yarıya indirilmiş olur.

Bu algoritma ile N elemanlı bir dizide en fazla log_2 N karşılaştırma yaparak aranan değerin yerini bulmak mümkündür.

Örnek Kod

int dizi[7] = {1, 3, 4, 7, 10, 12, 15};
int aranan = 12;
 
int bas = 0;
int son = 6;
int i;

while (bas != son) { i = (bas + son)/2; if (dizi[i] == aranan) break; else if (dizi[i] > aranan) son = i; else bas = i; }

Özyinelemeli Örnek Kod:

function binarySearch(a, value, left, right)
    if right < left
        return not found
    mid := floor((right-left)/2)+left
    if a[mid] = value
        return mid
    if value < a[mid]
        return binarySearch(a, value, left, mid-1)
    else
        return binarySearch(a, value, mid+1, right)

Kaynak: http://tr.wikipedia.org/wiki/%C4%B0kili_Arama
Son değişme: 29.06.06 yazan Ergin Altıntaş
Yapay-Zeka.org sayfalarında bulunan bilgi ve belgelerin, kaynak gösterilmek koşulu ile GÖBL çerçevesinde kullanılması serbesttir. XOOPS'a teşekkürler.