vakho

ალგ. – ლაბ. N7 – 2;

Jun 10th, 2012
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. template <typename iterator>
  9. void countingSort(iterator aFirst, iterator aLast, iterator bFirst, iterator bLast)
  10. {
  11.     int k = *max_element(aFirst, aLast);
  12.     k++;
  13.  
  14.     vector<int> c(k);
  15.  
  16.     for (iterator i = aFirst; i < aLast; i++)
  17.         c[ *i ]++;
  18.     for (int i = 1; i < k; i++)
  19.         c[i] += c[i - 1];
  20.  
  21.     for (iterator i = aLast - 1; i >= aFirst; i--)
  22.     {
  23.         bFirst[ c[ *i ] - 1 ] = *i;
  24.         c[ *i ]--;
  25.     };
  26. };
  27.  
  28. int main()
  29. {
  30.     system("COLOR F0");
  31.     srand( time(NULL) );
  32.  
  33.     vector<int> a;
  34.     for (int i = 0; i < 15; i++)
  35.     {
  36.         int num = rand()% 30 + 1;
  37.         a.push_back(num);
  38.     };
  39.  
  40.     vector<int> b(a.size());
  41.  
  42.     for (int i = 0; i < a.size(); i++)
  43.         cout << " a [ " << i << " ]\t= " << a[i] << endl;
  44.     cout << endl;
  45.  
  46.     countingSort(a.begin(), a.end(), b.begin(), b.end());
  47.  
  48.     for (int i = 0; i < b.size(); i++)
  49.         cout << " b [ " << i << " ]\t= " << b[i] << endl;
  50.     cout << endl;
  51.  
  52.     system("PAUSE");
  53.     return (0);
  54. };
Advertisement
Add Comment
Please, Sign In to add comment