Aylık arşivler: Mart 2013

C de Binary Search

Arkadaşlar Binary Search algoritmasını  kullandığım kod parçasını main ile birlikte paylaşıyorum.İyi çalışmalar

Binary Search

Binary Search

#include <stdio.h>

#define SIZE 15

int binarySearch( const int b[], int searchKey, int low, int high);

int main(void)
{
int a[SIZE];
int i, key, result;

for(i=0; i<SIZE; i++){
a[i] = 2 * i;
}           //a arrayini çift sayılar ile initialize ediyoruz.Bu bizim içinde arama yapacağımız array olacak.

printf(“Enter number btw 0 and 28: “);
scanf(“%d”, &key);                                               //Hangi integerı aramak istiyorsak onu key değişkenine atıyoruz.

printf (“The array is initialized with this numbers : n”);
for (i = 0 ; i < SIZE ; i++ )
printf (“a[%d] = %d n”,i,a[i]);

result= binarySearch(a, key, 0, SIZE-1);

if(result != -1){                                                      //Eğer key a dizininde var ise ‘ İF’  functionu kaçıncı eleman olduğunu gösterecektir.
printf(“n%d found in array elemet %dn”, key, result);
}else{
printf(“nKey not found!n”);                  //  Şayet aranılan key dizinde yok ise ekranda Key not found görülecektir.
}
return 0;

}

int binarySearch( const int b[], int searchKey, int low, int high)
{
int middle;

while(low<= high){
middle=(low+high)/2;

if(searchKey == b[middle]){
return middle;
}else if(searchKey < b[middle]){
high= middle – 1;
}else{
low = middle + 1;
}
}

return -1;
}