Facebook
From Insensitive Cat, 5 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 260
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5.  
  6. void sortowanie(string [], int);
  7. int binarne_przeszukiwanie(string [], int, string);
  8. const int rozmiar = 20;
  9.  
  10. int main()
  11. {
  12.  
  13.     const int numer= 20;
  14.     string imiona[numer];
  15.     for(int i=0;i<=5;i++)
  16.     {
  17.         cout<<"Podaj imie:"<<endl;
  18.         cin>>imiona[i];
  19.     }
  20.  
  21.     string empName;
  22.     int results;
  23.  
  24.     sortowanie(imiona, numer);
  25.  
  26.  
  27.     cout << "Please enter an employee's name: ";
  28.     getline(cin, empName);
  29.  
  30.  
  31.     results = binarne_przeszukiwanie(imiona, numer, empName);
  32.     system("PAUSE");
  33.  
  34.     return 0;
  35. }
  36.  
  37. void sortowanie(string imiona[], int size)
  38. {
  39.     int startScan, minIndex;
  40.     string minValue;
  41.  
  42.     for (startScan = 0; startScan < (size - 1); startScan++)
  43.     {
  44.         minIndex = startScan;
  45.         minValue = imiona[startScan];
  46.         for(int index = startScan + 1; index < size; index++)
  47.         {
  48.             if (imiona[index] < minValue)
  49.             {
  50.                 minValue = imiona[index];
  51.                 minIndex = index;
  52.             }
  53.         }
  54.         imiona[minIndex] = imiona[startScan];
  55.         imiona[startScan] = minValue;
  56.     }
  57. }
  58.  
  59. int binarne_przeszukiwanie(string imiona[], int size, string value)
  60. {
  61.     int pierwszy = 0,
  62.         ostatni = size - 1,
  63.         srodek,
  64.         pozycja = -1;
  65.     bool znajdz = false;
  66.  
  67.     while (!znajdz&& pierwszy <= ostatni)
  68.     {
  69.         srodek = (pierwszy + ostatni) / 2;
  70.         if (imiona[srodek] == value)
  71.         {
  72.             znajdz = true;
  73.             pozycja = srodek;
  74.         }
  75.         else if (imiona[srodek] > value)
  76.             ostatni = srodek - 1;
  77.         else
  78.             pierwszy = srodek + 1;
  79.     }
  80.     return pozycja;
  81. }