Yazılım Geliştirme,Eğitim ve Paylaşım
 
 
Makaleler
 
Videolar
 
 
 
Diğer
 
 
 
İneta Üyesidir
 
 
 
 Başlık :İkili Arama (Binary Search)
 Yazar : Tahir MUTLU
 Tarih : 2008-11-04
 Kategori : Algoritma
       Okunma : 240
  
 
 

                        İkili Arama (Binary Search)

İkili arama , sıralı dizilier için kullanılan bir algoritmadır. Algoritmanın amacı bu sıralı dizi içinde istenilen değeri bulmaktır. Çalışmaya başladığı anda dizinin ortasındaki eleman ile aranan sayı karşılaştırılır, eğer aranan değerden küçükse orta elemanın sağ tarafa doğru , eğer büyük ise orta elemanın sol tarafından devam edilir. Bu şekilde aranılan değer bulununcaya dek bu işlem devam eder. Küçük bir sayı dizisinde adım adım ilerleyecek olursal

1 - 3 - 5 - 7 - 9 - 11 - 13  aranan değer 13 olsun. ilk olarak ortaki eleman olan 7 ele alınır. 13 den küçük olduğu için sağa doğru ilerleme yapılır

9 - 11 - 13 bu sefer ortadaki eleman ile karşılaştırdığımızda aranan değerden küçük olduğu için . sağa doğru ilerleriz.

13 elimizdeki yeni bölümdür. 13 ile karşılaştırdığımızda da aradığımız değeri 3. adımda bulmuş olduk.

Örnek uygulama :

   

int dizi[7] = {1, 3, 5, 7, 9, 11, 13};
int arananDeger = 13;
 
int baslangic = 0;
int bitis = 6;
int i;

while ( baslangic  != bitis )
{
  i = ( baslangic  + bitis )/2;
  if (dizi[i] == arananDeger )
    break;
  else if (dizi[i] > arananDeger )
    bitis = i;
  else
    baslangic = i;
  i++;
}