【发布时间】:2020-11-06 20:46:09
【问题描述】:
我正在练习 C++ 中的排序算法,我应该在不使用向量的情况下实现这些算法。所以未排序的数组大小可以在开头#define ARR_SIZE 25 决定,元素是从均匀分布的随机数中选择的。
void Sorters::InitializeArray()
{
for (int i = 0; i < ARR_SIZE; i++) {
arr[i] = uniformRandom.RandomlyDistribute(LOWER_ARRAY_LIMIT, UPPER_ARRAY_LIMIT);
}
}
随机数的下限是#define LOWER_ARRAY_LIMIT 0,上限是#define UPPER_ARRAY_LIMIT 200。我实现了一个冒泡排序,即
void Sorters::BubbleSort(int arr[], int arraySize)
{
for (int k = 0; k < arraySize; k++)
for (int i = 0; i < arraySize - k - 1; i++)
if (arr[i] > arr[i + 1]) {
temporaryVal = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temporaryVal;
}
}
但是,我在使用桶排序和计数排序时遇到了麻烦。我该如何实施它们?在桶排序中,我将如何确定每个桶的大小,因为它不是动态的?谢谢。
【问题讨论】:
标签: c++ algorithm sorting counting-sort bucket-sort