SHARE
TWEET

Untitled

a guest Jan 17th, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "ReadWriter.h"
  2. //iostream, fstream включены в ReadWriter.h
  3. using namespace std;
  4.  
  5. // Функция сортировки подсчетом
  6. void countingSort(int *numbers, int array_size) {
  7.     int maxVal = -1;
  8.     for (int i = 0; i < array_size; ++i) {
  9.         if (numbers[i] > maxVal)
  10.             maxVal = numbers[i];
  11.     }
  12.  
  13.     int *countArr = new int[maxVal + 1];
  14.     int *resultArr = new int[array_size];
  15.     for (int i = 0; i < maxVal + 1; ++i) {
  16.         countArr[i] = 0;
  17.     }
  18.     for (int i = 0; i < array_size; ++i) {
  19.         countArr[numbers[i]]++;
  20.     }
  21.     for (int j = 1; j < maxVal + 1; ++j) {
  22.         countArr[j] += countArr[j - 1];
  23.     }
  24.     for (int i = array_size - 1; i >= 0; --i) {
  25.         countArr[numbers[i]]--;
  26.         resultArr[countArr[numbers[i]]] = numbers[i];
  27.     }
  28.     for (int i = 0; i < array_size; ++i) {
  29.         numbers[i] = resultArr[i];
  30.     }
  31.     delete[] countArr;
  32.     delete[] resultArr;
  33. }
  34.  
  35. //Не удалять и не изменять метод main без крайней необходимости.
  36. //Необходимо добавить комментарии, если все же пришлось изменить метод main.
  37. int main() {
  38.     //Объект для работы с файлами
  39.     ReadWriter rw;
  40.  
  41.     int *brr = nullptr;
  42.     int n;
  43.  
  44.     //Ввод из файла
  45.     n = rw.readInt();
  46.  
  47.     brr = new int[n];
  48.     rw.readArray(brr, n);
  49.  
  50.     //Запуск сортировки, ответ в том же массиве (brr)
  51.     countingSort(brr, n);
  52.  
  53.     //Запись в файл
  54.     rw.writeArray(brr, n);
  55.  
  56.     //освобождаем память
  57.     delete[] brr;
  58.  
  59.     return 0;
  60. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top