Skip to content

Commit 76c48c3

Browse files
sjmillingtonpivovarit
authored andcommitted
[BAEL-3193] - changes made to clean up code (eugenp#7760)
* [BAEL-3193] - changes made to clean up code * Fixed missing linkedList import * [BAEL-3193] - changing the default value in the findMax function
1 parent 8da0c75 commit 76c48c3

3 files changed

Lines changed: 16 additions & 18 deletions

File tree

algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/bucketsort/IntegerBucketSorter.java renamed to algorithms-sorting/src/main/java/com/baeldung/algorithms/bucketsort/IntegerBucketSorter.java

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.ArrayList;
44
import java.util.Comparator;
5+
import java.util.LinkedList;
56
import java.util.List;
67

78
public class IntegerBucketSorter implements Sorter<Integer> {
@@ -28,43 +29,40 @@ public List<Integer> sort(List<Integer> arrayToSort) {
2829
}
2930

3031
private List<Integer> concatenateSortedBuckets(List<List<Integer>> buckets){
31-
List<Integer> sortedArray = new ArrayList<>();
32-
int index = 0;
32+
List<Integer> sortedArray = new LinkedList<>();
3333
for(List<Integer> bucket : buckets){
34-
for(int number : bucket){
35-
sortedArray.add(index++, number);
36-
}
34+
sortedArray.addAll(bucket);
3735
}
3836
return sortedArray;
3937
}
4038

4139
private List<List<Integer>> splitIntoUnsortedBuckets(List<Integer> initialList){
4240

43-
final int[] codes = createHashes(initialList);
41+
final int max = findMax(initialList);
42+
final int numberOfBuckets = (int) Math.sqrt(initialList.size());
4443

45-
List<List<Integer>> buckets = new ArrayList<>(codes[1]);
46-
for(int i = 0; i < codes[1]; i++) buckets.add(new ArrayList<>());
44+
List<List<Integer>> buckets = new ArrayList<>();
45+
for(int i = 0; i < numberOfBuckets; i++) buckets.add(new ArrayList<>());
4746

4847
//distribute the data
4948
for (int i : initialList) {
50-
buckets.get(hash(i, codes)).add(i);
49+
buckets.get(hash(i, max, numberOfBuckets)).add(i);
5150
}
5251
return buckets;
5352

5453
}
5554

56-
private int[] createHashes(List<Integer> input){
57-
int m = input.get(0);
58-
for (int i = 1; i < input.size(); i++) {
59-
if (m < input.get(i)) {
60-
m = input.get(i);
61-
}
55+
private int findMax(List<Integer> input){
56+
int m = Integer.MIN_VALUE;
57+
for (int i : input){
58+
m = Math.max(i, m);
6259
}
63-
return new int[]{m, (int) Math.sqrt(input.size())};
60+
return m;
6461
}
6562

66-
private static int hash(int i, int[] code) {
67-
return (int) ((double) i / code[0] * (code[1] - 1));
63+
private static int hash(int i, int max, int numberOfBuckets) {
64+
return (int) ((double) i / max * (numberOfBuckets - 1));
6865
}
6966

67+
7068
}

algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/bucketsort/Sorter.java renamed to algorithms-sorting/src/main/java/com/baeldung/algorithms/bucketsort/Sorter.java

File renamed without changes.

algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/bucketsort/IntegerBucketSorterUnitTest.java renamed to algorithms-sorting/src/test/java/com/baeldung/algorithms/bucketsort/IntegerBucketSorterUnitTest.java

File renamed without changes.

0 commit comments

Comments
 (0)