Pagini recente » Cod sursa (job #938768) | Cod sursa (job #2595700) | Cod sursa (job #1129254) | Cod sursa (job #2829323) | Cod sursa (job #1080663)
#include<fstream>
#include<queue>
#include<climits>
using namespace std;
int main()
{
queue <int> q[10];
int *v, n, max = INT_MIN, ordin = 10, impartitor = 1;
ifstream f("algsort.in");
f >> n;
v = new int[n];
for (int i = 0; i < n; i++)
{
f >> v[i];
if (v[i] > max)
max = v[i];
}
f.close();
while (max)
{
for (int i = 0; i < n; i++)
q[(v[i] % ordin) / impartitor].push(v[i]);
int j = 0;
for (int i = 0; i < 10; i++)
{
while (!q[i].empty())
{
v[j] = q[i].front();
q[i].pop();
j++;
}
}
ordin *= 10;
impartitor *= 10;
max /= 10;
}
ofstream g("algsort.out");
for (int i = 0; i < n; i++)
g << v[i] << ' ';
delete[] v;
g.close();
return 0;
}