1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public class BucketSort implements Sort { public static void main(String[] args) { int[] numbers = {34, 12, 23, 56, 56, 56, 78}; BucketSort bucketSort = new BucketSort(); System.out.println("BucketSort"); bucketSort.sort(numbers); bucketSort.print(numbers);
}
@Override public void sort(int[] arr) { int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int i = 0; i < arr.length; i++) { max = Math.max(max, arr[i]); min = Math.min(min, arr[i]); } int bucketNum = (max - min) / arr.length + 1; ArrayList<ArrayList<Integer>> bucketArr = new ArrayList<>(bucketNum); for (int i = 0; i < bucketNum; i++) { bucketArr.add(new ArrayList<Integer>()); } for (int i = 0; i < arr.length; i++) { int num = (arr[i] - min) / (arr.length); bucketArr.get(num).add(arr[i]); } for (int i = 0; i < bucketArr.size(); i++) { Collections.sort(bucketArr.get(i)); } }
}
|