C de Dizilerde İkili Arama Yapma

yorumsuz
212 kez okundu

 

 

 
#include <stdio.h>
#define BOYUT 15

int ikiliArama(const int [],int,int,int);
int main()
{
int a[BOYUT],anahtar,sonuc,i;
for(i=0; i<=BOYUT-1; i++)
a[i]=2*i;// a dizisine eleman atamasi yapildi.
printf(“0 ile 28 arasinda bir sayi giriniz >> \n”);
scanf(“%d”,&anahtar);
sonuc=ikiliArama(a,anahtar,0,BOYUT-1);
if(sonuc!=-1)
printf(“%d, dizinin %d. elemanidir!! \n”,anahtar,sonuc);
else
printf(“%d bulunamadi!! \n”,anahtar);

return 0;
}
int ikiliArama(const int b[],int aramaDegeri,int enAlt,int enUst)
{
int orta;
while(enAlt<=enUst)
{
orta=(enAlt+enUst);
if(aramaDegeri==b[orta])
return orta;
else if(aramaDegeri<b[orta])
enUst=orta-1;
else
enAlt=orta+1;
}
return -1;
}


Sosyal Medyada Paylaş Facebook Twitter Google+
Etiketler: , , ,
Eklenme Tarihi: 10 Aralık 2015

Facebook Yorumları

Konu hakkında yorumunuzu yazın


Time limit is exhausted. Please reload the CAPTCHA.