👤

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ăspuns :

#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;}
Lia96
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);}