C++ でバケットソート アルゴリズムを作成しようとしていますが、まったく機能しません。実行するたびに、多数の新しい数値が配列に追加されます。多くの場合、数十億のような非常に大きな数値が配列に追加されます。これがなぜなのか誰か知っていますか?コードは次のとおりです-(サイズ100の配列を0から〜37000の乱数で渡していることに注意してください。挿入ソート機能は完全に機能し、複数回テストされています)
誰かが間違っていることを指摘できれば幸いです。
void bucketSort(int* n, int k)
{
int c = int(floor(k/10)), s = *n, l = *n;
for(int i = 0; i < k; i++) {
if(s > *(n + i)) s = *(n + i);
else if(l < *(n + i)) l = *(n + i);
}
int bucket[c][k + 1];
for(int i = 0; i < c; i++) {
bucket[i][k] = 0;
}
for(int i = 0; i < k; i++) {
for(int j = 0; j < c; j++) {
if(*(n + i) >= (l - s)*j/c) {
continue;
} else {
bucket[j][bucket[j][k]++] = *(n + i);
break;
}
}
}
for(int i = 0; i < c; i++) {
insertionSort(&bucket[i][0], k);
}
}