| [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)
|
Son değişme: 29.06.06 yazan Ergin Altıntaş
|



