problem z przypisaniem zawartości do tablicy po posortowaniu

0

Napisałem funkcję która ma przeprowadzać bucket sort w tablicy intów, ale nie jestem w stanie poprawnie przypisać posortowanej zawartości z powrotem.

main:

#include <iostream>
#include "sort.h"
 
using namespace std;
 
void bucketSort(int* tab, int n, int m);
 
int main() {

//[edit]
int n = 18;
int m = 20;
//[edit]

    cout << "bucket sort" << endl;
    int bs[] = { 9,11,4,7,4,15,3,19,5,8,14,12,12,11,17,4,3,19 };
    bucketSort(bs, n, m);
 
    return 0;
}

sort.h

void bucketSort(int *tab, int n, int m) {
    double w = (double)m / (double)n;
    DynamicArray<int*>* buckets = new DynamicArray<int*>[n];
 
    for (int i = 0; i < n; i++) {
        int index = tab[i] / w;
        buckets[index].addInOrder(&tab[i]);
    }
 
    int pos = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < buckets[i].getSize(); j++) {
            std::cout << pos << ": " << *buckets[i].get(j) << std::endl;
            //tab[pos] = *buckets[i].get(j);
            pos++;
        }
    }
 
    delete []buckets;
}

output kodu który jest powyżej:
bucketsort.png
output kiedy odkomentuję linię w ostatniej pętli funkcji sortującej:
bucketsortPO.png

2

Na 100% to nie ten kod odpalasz ponieważ to co podane w main'ie nie ma prawa się skompilować.

2

Jak wyżej, i jaki jest kod tego DynamicArray?

1

Czy możesz wyjaśnić co chcesz osiągnąć?
Bo z tego co widzę do kubełków dodajesz adresy: .addInOrder(&tab[i]);

1 użytkowników online, w tym zalogowanych: 0, gości: 1