se citesc elementele unui vector cu n<=100,acestea fiind ordonate crescator.sa se determine daca valoarea x citita de la tastatura se gaseste in tablou.in caz afirmativ se va afisa cel mai mic indice pe care acesta se gaseste in tablou altfel se va afisa un mesaj.
rezolvati in c++ va rog :)
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int main()
{int n,x,i,a[100];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
cin>>x;
int st=0,dr=n-1,mij;
while(st<dr)
{mij=(st+dr)/2;
if(x<a[mij])
dr=mij-1;
else if(x>a[mij])
st=mij+1;
else
{cout<<mij; return 0;}}
cout<<"NU";
return 0;}
Răspuns de
0
Căutare binară, metoda divide et impera
Testat!
#include
using namespace std;
int divide(int i, int j, int v[50], int x)
{int m=(i+j)/2;
if(x==v[m])
cout<<"gasit pe pozitia"<>n;
for(int k=1; k<=n;k++)
cin>>v[k];
cin>>x;
divide(1, n, v, x);}
Alte întrebări interesante
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă