Я практиковался в алгоритмах сортировки на С++, и я должен был реализовать алгоритмы без использования векторов. Таким образом, размер несортированного массива может быть определен в начале #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;
}
}
Однако у меня проблемы с сортировкой ведра и сортировкой подсчетом. Как я могу их реализовать? В Bucket Sort, как я буду определять размер каждого сегмента, поскольку он не является динамическим? Спасибо.