Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cmath>
- using namespace std;
- const int n = 2;
- int getMax(int arr[], int n)
- {
- int max = arr[0];
- for (int i = 1; i < n; i++)
- if (arr[i] > max)
- max = arr[i];
- return max;
- }
- void countSort(int arr[],int exp)
- {
- int output[n], i, count[10] = { 0 };
- for (i = 0; i < n; i++)
- count[(arr[i] / exp) % 10]++;
- for (i = 1; i < 10; i++)
- count[i] += count[i - 1];
- for (i = n - 1; i >= 0; i--)
- {
- output[count[(arr[i] / exp) % 10] - 1] = arr[i];
- count[(arr[i] / exp) % 10]--;
- }
- for (i = 0; i < n; i++)
- arr[i] = output[i];
- }
- void radixsort(int arr[], int n)
- {
- int exp, m;
- m = getMax(arr, n);
- for (exp = 1; m / exp > 0; exp *= 10)
- countSort(arr,exp);
- }
- int power(int x, int y)
- {
- int p = 1;
- for (int i = 0; i < y; i++)
- p = p * x;
- return p;
- }
- int main()
- {
- ifstream f("Text.txt");
- int m = 10,
- p = 2;
- int mass[n];
- for (int i = 0; i < n; i++)
- {
- mass[i] = 0;
- }
- int ar;
- for (int i = 0; i < n; ++i)
- {
- for (int j = 0; j < m; ++j)
- {
- for (int k = p - 1; k >-1; k--)
- {
- f >> ar;
- mass[i] += j * (pow(10, k))*ar;
- }
- }
- }
- for (int i = 0; i < n; i++)
- {
- cout << mass[i] << ' ';
- }
- cout << endl;
- radixsort(mass, n);//цифровая
- for (int i = 0; i < n; i++)
- {
- cout << mass[i] << ' ';
- }
- cout << endl<<endl;
- for (int i = 0; i < n; ++i)
- {
- for (int j = 0; j < m; ++j)
- {
- for (int k = p - 1; k >-1; k--)
- {
- if(mass[i]/power(10,k)%10==j)
- cout << 1 << ' ';
- else
- cout << 0 << ' ';
- }
- cout << endl;
- }
- cout << endl << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment