int *countingSort(int arr_count, int *arr, int *result_count)
{
int i, j, s;
int *res = (int *)malloc(100 * sizeof(int));
for (i = 0; i < arr_count; i++)
{
s = arr[i];
res[s]++;
}
return *res;
}
字符串
返回res
时也没有得到任何答案。谁能解释一下计数排序的代码?
2条答案
按热度按时间toe950271#
发布的代码没有对数组进行排序,而且分配给
malloc()
的数组未初始化,因此代码具有未定义的行为。如果可以假定值在0到99的范围内,则不需要为计数器分配内存。
以下是修改后的版本:
字符串
3b6akqbq2#
提供的计数排序代码有几个问题:
3.未使用或更新result_count参数。
下面是代码的更正版本:
字符串
现在,countingSort函数将返回一个已排序的数组。输出将为: