Advertisement
filomancio

Ricerca Binaria

Feb 23rd, 2012
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include "iostream"
  2. #include "cstdlib"
  3. #include "ctime"
  4.  
  5. #define DIM 1000
  6.  
  7. using namespace std;
  8.  
  9. void CaricaRandom();
  10. void Ordina();
  11. void Cerca();
  12. void Visualizza();
  13.  
  14. int vett[DIM];
  15.  
  16. int main ()
  17. {
  18.     CaricaRandom();
  19.     Visualizza();
  20.     cout<<endl;
  21.     Ordina();
  22.     cout<<endl;
  23.     Visualizza();
  24.     cout<<endl;
  25.     Cerca();
  26.     cout<<endl;
  27.     system("PAUSE");
  28.     return 0;
  29. }//main
  30.  
  31. void CaricaRandom()
  32. {
  33.     cout<<"Caricamento vettori con valori casuali . . ."<<endl;
  34.     srand(time(NULL));
  35.     for (int i=0; i<DIM; i++)
  36.         vett[i]=rand()%10000;
  37.     return;
  38. }//CaricaRandom
  39.  
  40. void Visualizza()
  41. {
  42.     cout<<"Visualizzazione valori nei vettori . . ."<<endl;
  43.     for (int i=0; i<DIM; i++)
  44.         cout<<vett[i]<<' ';
  45.     return;
  46. }//Visualizza
  47.  
  48. void Ordina()
  49. {
  50.     int temp;
  51.     cout<<"Sto ordinando i vettori . . .";
  52.     for (int iMin=0;iMin<DIM-1;iMin++)
  53.         for (int i=iMin+1;i<DIM;i++)
  54.             if (vett[iMin]>vett[i])
  55.             {
  56.                 temp=vett[i];
  57.                 vett[i]=vett[iMin];
  58.                 vett[iMin]=temp;
  59.             }
  60.     return;
  61. }//Ordina
  62.  
  63. void Cerca()
  64. {
  65.     bool trovato=false;
  66.     int i=0,f=DIM-1,iMeta;
  67.     int valRic;
  68.     cout<<"Inserisci il valore da ricercare: ";
  69.     cin>>valRic;
  70.     do
  71.     {
  72.         iMeta=(i+f)/2;
  73.         if (vett[iMeta]==valRic)
  74.             trovato=true;
  75.         else if (vett[iMeta]>valRic)
  76.             f=iMeta-1;
  77.         else
  78.             i=iMeta+1;
  79.     }while (trovato==false && i<=f);
  80.     if (trovato)
  81.         cout<<"Valore trovato nel vett["<<iMeta<<"]."<<endl;
  82.     else
  83.         cout<<"Non e' stato trovato il valore."<<endl;
  84.     return;
  85. }//Cerca
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement