Pagini recente » Cod sursa (job #1167820) | Cod sursa (job #1187951) | Cod sursa (job #1659498) | Cod sursa (job #1304938) | Cod sursa (job #2125838)
#include<fstream>
using namespace std;
int main() {
ifstream in("algsort.in");
int N;
in >> N;
int *v = new int[N];
for (int i = 0;i < N;++i)
in >> v[i];
int mx = v[0];
for (int i = 1; i < N; ++i)
if (v[i] > mx)
mx = v[i];
for (long long tiz = 1; mx / tiz; tiz *= 10) {
int *result = new int[N];
int hany[10] = { 0 };
for (int i = 0;i < N;++i)
++hany[(v[i] / tiz) % 10];
for (int i = 1;i < 10;++i)
hany[i] += hany[i - 1];
for (int i = N - 1;i >= 0;--i)
result[--hany[(v[i] / tiz) % 10]] = v[i];
for (int i = 0;i < N;++i)
v[i] = result[i];
}
ofstream out("algsort.out");
for (int i = 0;i < N; ++i)
out << v[i] << " ";
}