Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "random"
- using namespace std;
- int main()
- {
- int n;//размер массива
- int r;//радиус в котором будут браться числа для заполнения массива(0-r)
- int k=0;//вспомогательная величина, чтобы заполнить массив
- cin>>n;
- cin>>r;
- int a[n];//сортируемый массив
- for (int i=0;i<n;i++){//заполняем массив случайными числами
- a[i]=rand()%r;
- }
- for (int i =0;i<n;i++){//вывод изначального массива
- cout<<a[i]<<" ";
- }
- cout<<endl;
- //теперь нужно считать массив
- int c[r];//вспомогательный массив размером r(так как числа в интервале от 0 до r)
- for(int u=0;u<r;u++){
- c[u]=0;//обнуляем вспомогательный массив, иначе там значения всё ломают
- }
- for (int i=0;i<n;i++){//считывание массива
- c[a[i]]++;
- }
- int b[n];//отсортированный массив
- for (int i=0;i<r;i++){
- while(c[i]!=0){
- b[k]=i;
- k++;
- c[i]--;
- }
- }
- for(int w=0;w<n;w++){//вывод отсортированного массива для проверки
- cout<<b[w]<<" ";
- }
- return 0;
- }
- /*Замечания:
- * 1-Размер массива в данной реализации задаётся пользователем, если нужно обрабатывать массив
- * с неизвестными параметрами, придётся сначала искать размер этого массива
- * 2-Диапазон значений в массиве также задаётся, в других случаях нужно искать минимально и максимальные значения
- * в этом массиве
- * 3-Даже при условии того, что диапазон задаётся, так как заполнение происходит случайно, там может не быть
- * каких-то значений (скажем, он начинается не с нуля, а с пяти).*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement