ZyphenVisuals

BinarySearch

May 6th, 2021
423
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Continuare a codului lui Mihai Sava
  2. //Scris de Rotaru Iulian
  3.  
  4. #include <iostream>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. int v[1001];
  10.  
  11. void citire(int & n, int v[], int & k)
  12.     {
  13.     cout << "Introduceti N: ";
  14.     cin >>n;
  15.     cout << "Introduceti N numere:\n";
  16.     for(int i=0;i<n;i++)
  17.         cin>>v[i];
  18.     cout << "Introduceti K: ";
  19.     cin >> k;
  20.     }
  21.  
  22. void afisare(int n,int v[])
  23. {
  24.     for(int i=0;i<n;i++)
  25.         cout<<v[i]<<" ";
  26. }
  27.  
  28. bool cautare(int start, int end, int nr)
  29. {
  30.     if(start <= end)
  31.     {
  32.         int mijloc = (start + end) / 2;
  33.         if(v[mijloc] == nr)
  34.         {
  35.             return 1;
  36.         }
  37.         if(v[mijloc] > nr)
  38.         {
  39.             cautare(start, mijloc-1, nr);
  40.         }
  41.         if(v[mijloc] < nr)
  42.         {
  43.             cautare(mijloc+1, end, nr);
  44.         }
  45.     }
  46.     return 0;
  47. }
  48.  
  49. int main()
  50. {
  51.     int n, k;
  52.     citire(n,v,k);
  53.     sort(v, v+n);
  54.     afisare(n,v);
  55.     if(cautare(0, n-1, k))
  56.     {
  57.         cout << "\nNumarul " << k << " a fost gasit.";
  58.     }
  59.     else
  60.     {
  61.         cout << "\nNumarul " << k << " nu a fost gasit.";
  62.     }
  63.    
  64.     return 0;
  65. }
RAW Paste Data