Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. /**
  5.     Test si un tableau t[0 à n] est ordonné (croissant)
  6. */
  7. bool TableauOrdonne(int t[], int n)
  8. {
  9.     int i;
  10.     for(i=1; i<=n; i++)
  11.         if(t[i-1] >= t[i])
  12.             return false;
  13.     return true;
  14. }
  15.  
  16.  
  17. /**
  18.     Test si un entier x appartient à un tableau t[0 à n], si le tableau est ordonné on utilise la dichotomie
  19. */
  20. bool AppartTableau(int t[], int n, int x)
  21. {
  22.     bool ordonne = TableauOrdonne(t,n);
  23.     int i;
  24.     //par dichotomie :
  25.     int debut = 0; int fin = n;
  26.     int millieu;
  27.     bool trouve = false;
  28.  
  29.     if(!ordonne)
  30.     {
  31.       for(i=0;i<=n;i++)
  32.         if(x == t[i])
  33.             return true;
  34.       return false;
  35.     }
  36.     else  //tableau ordonné donc dichotomie :
  37.     {
  38.       do
  39.       {
  40.           millieu = int((debut+fin)/2);
  41.           if(t[millieu] == x)
  42.             return true;
  43.           else if(x > t[millieu])
  44.             debut = millieu + 1;
  45.           else
  46.             fin = millieu - 1;
  47.       }
  48.       while(trouve == false && debut <= fin);
  49.       return false;
  50.     }
  51. }
  52.  
  53. /**
  54.     Affiche toutes les valeurs d'un tableau : t[0 à n]
  55. */
  56. void AfficheTableau(int t[], int n)
  57. {
  58.     int i;
  59.     cout << "[";
  60.     for(i=0; i<n; i++)
  61.         cout << t[i]<< " , ";
  62.     cout << "]" << endl;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement