Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <cstdlib>
- #include <deque>
- #include <cmath>
- #include <algorithm>
- #include <map>
- #include <set>
- using namespace std;
- typedef pair<int, int> pii;
- #define mp make_pair
- const int N = 100;
- vector<int> arr;
- int digit(int x, int ind) {
- int cnt = 0;
- while (cnt != ind) {
- x /= 10;
- cnt++;
- }
- return x % 10;
- }
- void radix_sort(int l, int r) {
- //k = max len;
- int k = 32;
- vector<int > b(arr.size());
- for (int i = 0; i < k; i++) {
- vector<int> c(10);
- for (int j = 0; j < N; j++) {
- c[digit(arr[j], i)]++;
- }
- for (int j = 1; j < 10; j++) {
- c[j] += c[j - 1];
- }
- for (int j = N - 1; j >= 0; j--) {
- b[--c[digit(arr[j], i)]] = arr[j];
- }
- arr = b;
- }
- }
- int main() {
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- arr.resize(N);
- for (int i = 0; i < N; i++) {
- int x = rand() ^ rand();
- arr[i] = x;
- }
- radix_sort(0, N-1);
- for (int i = 0; i < N; i++) {
- cout << arr[i] << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement