Упражнения на Java: алгоритм сортировки по группам
Алгоритм сортировки Java: упражнение 19 с решением
Напишите программу на Java для сортировки массива заданных целых чисел с помощью алгоритма сортировки по группам.
Сортировка по группам - это алгоритм сортировки, который работает путем распределения элементов массива по нескольким сегментам. Затем каждый сегмент сортируется индивидуально, либо с использованием другого алгоритма сортировки, либо путем рекурсивного применения алгоритма сортировки сегмента. Это тип распределения, обобщение рода голубиных, и двоюродный брат радикальной сортировки с наиболее значительным количеством цифр.
Пример решения:
Java-код:
import java.util.Arrays;
public class BucketSort
{
static int[] sort(int[] nums, int max_value)
{
// Bucket Sort
int[] Bucket = new int[max_value + 1];
int[] sorted_nums = new int[nums.length];
for (int i = 0; i < nums.length; i++)
Bucket[nums[i]]++;
int outPos = 0;
for (int i = 0; i < Bucket.length; i++)
for (int j = 0; j < Bucket[i]; j++)
sorted_nums[outPos++] = i;
return sorted_nums;
}
static int max_value(int[] nums)
{
int max_value = 0;
for (int i = 0; i < nums.length; i++)
if (nums[i] > max_value)
max_value = nums[i];
return max_value;
}
// Method to test above
public static void main(String args[])
{
int nums[] = {7, 3, 2, 1, 0, 45};
int max_value = max_value(nums);
System.out.println("Original Array:");
System.out.println(Arrays.toString(nums));
nums = sort(nums, max_value);
System.out.println("Sorted Array:");
System.out.println(Arrays.toString(nums));
}
}
Пример вывода:
Оригинальный массив: [7, 3, 2, 1, 0, 45] Сортированный массив: [0, 1, 2, 3, 7, 45]
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите Java-программу для сортировки массива заданных неотрицательных целых чисел с помощью алгоритма сортировки Stooge.
Далее: Упражнения по алгоритму сортировки Java
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования