/** * @author lautturi.com * Java example: bucket sort in java */ import java.util.*; import java.time.*; public class Lautturi { static int maxValue(int[] arr) { int max_value = 0; for (int i = 0; i < arr.length; i++) if (arr[i] > max_value) max_value = arr[i]; return max_value; } public static int[] bucket_sort(int[] arr, int max_value) { int[] bucket = new int[max_value + 1]; int[] sorted_arr = new int[arr.length]; for (int i = 0; i < arr.length; i++) bucket[arr[i]]++; int pos = 0; for (int i = 0; i < bucket.length; i++) for (int j = 0; j < bucket[i]; j++) sorted_arr[pos++] = i; return sorted_arr; } public static void main(String[] args) { int[] arr = { 1, 4, 2, 7, 5, 16, 12, 8, 13, 28 }; int max_value = maxValue(arr); System.out.print("\nOrlautturinal : "); System.out.println(Arrays.toString(arr)); System.out.print("\nBucket Sorted : "); System.out.println(Arrays.toString(bucket_sort(arr, max_value))); } }
output:
Orlautturinal : [1, 4, 2, 7, 5, 16, 12, 8, 13, 28] Bucket Sorted : [1, 2, 4, 5, 7, 8, 12, 13, 16, 28]