Advertisement
Alex_tz307

Alternative Radix Sort

Sep 10th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.66 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. ifstream fin ("radixsort.in");
  7. ofstream fout ("radixsort.out");
  8.  
  9. int n, a, b, c, v[10000000];
  10.  
  11. void Sort (const short int &bits) {
  12.     vector < int > h[256];
  13.     for (int i = 0; i < n; i ++)
  14.         h[(v[i] >> bits) & 255].emplace_back (v[i]);
  15.     for (int i = 0, n = 0; i < 256; i ++)
  16.         for (auto it : h[i])
  17.             v[n ++] = it;
  18. }
  19.  
  20. int main () {
  21.     fin >> n >> a >> b >> c;
  22.     v[0] = b;
  23.     for (int i = 1; i < n; i ++)
  24.         v[i] = ((long long)a * v[i - 1] + b) % c;
  25.     Sort (0), Sort (8), Sort (16), Sort(24);
  26.     fout.sync_with_stdio(false);
  27.     for (int i = 0; i < n; i += 10)
  28.         fout << v[i] << ' ';
  29.     return 0;
  30. }
  31.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement