#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void countingSort(vector<int>& arr, int maxVal) {
vector<int> count(maxVal + 1, 0);
vector<int> output(arr.size());
// Zliczanie wystąpień każdej liczby
for (int i = 0; i < arr.size(); i++) {
count[arr[i]]++;
}
// Kumulacja wartości liczników
for (int i = 1; i <= maxVal; i++) {
count[i] += count[i - 1];
// Przenoszenie elementów do tablicy wynikowej
for (int i = arr.size() - 1; i >= 0; i--) {
output[count[arr[i]] - 1] = arr[i];
count[arr[i]]--;
// Przepisanie posortowanej tablicy do wejściowej
arr[i] = output[i];
int main() {
int n;
cout << "Podaj liczbę elementów: ";
cin >> n;
vector<int> arr(n);
cout << "Podaj " << n << " liczb: ";
for (int i = 0; i < n; i++) {
cin >> arr[i];
int maxVal = *max_element(arr.begin(), arr.end());
countingSort(arr, maxVal);
cout << "Posortowane liczby: ";
cout << arr[i] << " ";
cout << endl;
return 0;
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void countingSort(vector<int>& arr, int maxVal) {
vector<int> count(maxVal + 1, 0);
vector<int> output(arr.size());
// Zliczanie wystąpień każdej liczby
for (int i = 0; i < arr.size(); i++) {
count[arr[i]]++;
}
// Kumulacja wartości liczników
for (int i = 1; i <= maxVal; i++) {
count[i] += count[i - 1];
}
// Przenoszenie elementów do tablicy wynikowej
for (int i = arr.size() - 1; i >= 0; i--) {
output[count[arr[i]] - 1] = arr[i];
count[arr[i]]--;
}
// Przepisanie posortowanej tablicy do wejściowej
for (int i = 0; i < arr.size(); i++) {
arr[i] = output[i];
}
}
int main() {
int n;
cout << "Podaj liczbę elementów: ";
cin >> n;
vector<int> arr(n);
cout << "Podaj " << n << " liczb: ";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int maxVal = *max_element(arr.begin(), arr.end());
countingSort(arr, maxVal);
cout << "Posortowane liczby: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}