計算ソートアルゴリズムについて質問がありました。私はそれについて読んでいて、例ではコードを段階的に分析していましたが、少し詳細を理解しているとは思いません。正しく理解すれば、アルゴリズムが機能するためには、ソートされた配列、またはそれはアルゴリズムの実装であり、それは使用しません。ここで並べ替えソート、ソートされた配列のインデックス0
実装の次の例である:
/*Lets say that we have the following array initialized,
k is the maximum value and n is the length of the array*/
int A[] = {4,5,1,3,7};
k = 7;
n = 5;
void Counting_sort(int A[], int k, int n)
{
/*C is the count array and B is the sorted array*/
int i, j;
int B[n], C[k+1];
for(i = 0; i <= k; i++)
C[i] = 0;
for(j = 0; j < n; j++)
C[ A[j] ] = C[ A[j] ] + 1;
for(i = 1; i < k+1; i++)
C[i] = C[i] + C[i-1];
for(j = 0; j < n; j++) {
B[ C [ A [j] ] ] = A[j];
C[ A[j] ] = C[ A[j]] - 1;
}
//so in this loop I must always traverse from 1 to <= n and leave the Index 0?
for (i = 1; i <= n; i++)
cout << B[i] << endl;
}
は、だから、僕はこれが仕事にソートをカウントするために、順番に見て良い例であれば、ソートされた配列は常になります聞いていますのよ元の配列のサイズ+ 1とインデックス0は変更されませんか?