sâmbătă, 8 septembrie 2018

Cautare binara clasica

# include <stdio.h>;
# include <conio.h>;

# define MAX 100 //maxim 100 de elemente in sir

int i,n,val,a[MAX];

void main(void)
{
clrscr();

printf("Intr nr de elemente din sir: "); //pp sirul sortat
 scanf("%d",&n);
printf("\nIntr elementele sirului:\n");
 for(i=0;i<n;i++)
  scanf("%d",&a[i]);
printf("\nIntr valoarea cautata: ");
 scanf("%d",&val);

int s,d,mij;
int gasit;

s=0;
d=n;
mij=(s+d)/2;
gasit=0; //pp ca valoarea nu se afla in sir

while((s<=d)&&(gasit==0))
 {
  mij=(s+d)/2;
  if(val==a[mij]) {gasit=1; printf("\Val gasita pe poz %d",mij);}
  else if(a[mij]<val) s=mij+1;
  else if(a[mij]>val) d=mij-1;
 }
if(gasit==0) printf("\nValoarea nu se afla in sir !!!");

getche();
}

Niciun comentariu:

Trimiteți un comentariu