forked from admirerr/DSA-Collection
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBucketSort.java
More file actions
38 lines (32 loc) · 1.01 KB
/
BucketSort.java
File metadata and controls
38 lines (32 loc) · 1.01 KB
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
import java.util.*;
public class BucketSort {
public static void bucketSort(float[] arr) {
int n = arr.length;
if (n <= 0)
return;
@SuppressWarnings("unchecked")
List<Float>[] buckets = new ArrayList[n];
for (int i = 0; i < n; i++) {
buckets[i] = new ArrayList<>();
}
for (float value : arr) {
int index = (int) (value * n);
buckets[index].add(value);
}
for (List<Float> bucket : buckets) {
Collections.sort(bucket);
}
int idx = 0;
for (List<Float> bucket : buckets) {
for (float value : bucket) {
arr[idx++] = value;
}
}
}
public static void main(String[] args) {
float[] arr = {0.42f, 0.32f, 0.23f, 0.52f, 0.25f, 0.47f, 0.51f};
System.out.println("Before sorting: " + Arrays.toString(arr));
bucketSort(arr);
System.out.println("After sorting: " + Arrays.toString(arr));
}
}