vector<tuple<int, int, int>> a;
void countSort(vector<tuple<int, int, int>> &v, int n, int e) {
int i;
int o[10];
for (i = 0; i < n; i++) {
o[(get<1>(v[i]) / e) % 10]++;
}
for (i = 1; i < 10; i++) {
o[i] += o[i - 1];
}
//The problem is in the next for cycle...
for (i = n - 1; i >= 0; i--) {
a[o[(get<1>(v[i]) / e) % 10] - 1] = v[i];
o[(get<1>(v[i]) / e) % 10]--;
}
}
void radixSort(vector<tuple<int, int, int>> &v) {
for (int exp = 1; maxH/exp > 0; exp *= 10) {
countSort(v, n, exp);
}
}
User contributions licensed under CC BY-SA 3.0