Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. bool interpolation_search(int array[], int array_size, int value)
  5. {
  6.     int iteracje=0;
  7.     int Low = 0;
  8.     int Hi = array_size-1;
  9.     while (Low<=Hi and iteracje<=sqrt(Hi))
  10.     {
  11.         int mid = Low + ((Hi - Low)*(value - array[Low])) / (array[Hi] - array[Low]);
  12.         iteracje++;
  13.         if (array[mid]==value)
  14.         {
  15.             cout << "Liczba iteracji = " << iteracje << " ";
  16.             cout << "Wynik = true";
  17.             return true;
  18.         }
  19.         if (array[mid] > value)
  20.         {
  21.             Hi=(mid-1);
  22.         }
  23.         if (array[mid] < value)
  24.         {
  25.             Low=(mid+1);
  26.         }
  27.     }
  28.     cout << "Liczba iteracji = " << iteracje << " ";
  29.     cout << "Wynik = false";
  30.     return false;
  31. }
  32. int main ()
  33. {
  34.     int array_size;
  35.     int value;
  36.     int array[20];
  37.     cout << "Podaj rozmiar tablicy: ";
  38.     cin >> array_size;
  39.     if (array_size>=21 or array_size<=0)
  40.     {
  41.         cout << "Rozmiar tablicy powinien byc wiekszy od 0 i mniejszy od 21!";
  42.         return 0;
  43.     }
  44.     cout << "Podaj elementy tablicy: ";
  45.     for (int i=0;i<array_size;i++)
  46.     {
  47.         cin >> array[i];
  48.         if (array[i]<array[i-1])
  49.         {
  50.             cout << "Elementy tablicy nie sa posortowane!";
  51.             return 0;
  52.         }
  53.     }
  54.     cout << "Podaj szukana wartosc: ";
  55.     cin >> value;
  56.     interpolation_search(array, array_size, value);
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement