Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ReadWriter.h"
- //iostream, fstream включены в ReadWriter.h
- using namespace std;
- // Функция цифровой сортировки
- void radixSort(int *numbers, int array_size)
- {
- }
- //int k = 1000000;
- void countingSort(int *arr, int len, int k)
- {
- int c[k + 2];
- int b[k + 2];
- //инициализация массива
- for (int i = 0; i < k + 2; i++)
- {
- c[i] = 0;
- }
- for (int i = 0; i < len; i++)
- {
- c[arr[i]] += 1;
- }
- for (int i = 1; i < k + 2; i++) {
- c[i] += c[i - 1];
- }
- for (int i = len - 1; i >= 0; i--) {
- b[c[arr[i]] - 1] = arr[i];
- c[arr[i]] -= 1;
- }
- for (int i = 0; i < len; i++) {
- arr[i] = b[i];
- }
- }
- //Не удалять и не изменять метод main без крайней необходимости.
- //Необходимо добавить комментарии, если все же пришлось изменить метод main.
- int main()
- {
- //Объект для работы с файлами
- ReadWriter rw;
- int *brr = nullptr;
- int n;
- //Ввод из файла
- n = rw.readInt();
- //cin >> n;
- brr = new int[n];
- //инициализация массива
- for (int i = 0; i < n; i++)
- {
- brr[i] = 0;
- }
- rw.readArray(brr, n);
- int mx = 0;
- //поиск максимума (передается в сортировку как K)
- for (int i = 0; i < n; i++)
- {
- if (brr[i] > mx)
- {
- mx = brr[i];
- }
- }
- countingSort(brr, n, mx);
- //Запуск сортировки, ответ в том же массиве (brr)
- //radixSort(brr, n);
- //Запись в файл
- rw.writeArray(brr, n);
- /*
- for (int i = 0; i < n; i++) {
- cout << brr[i] << " ";
- }
- */
- //освобождаем память
- delete[] brr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement