Skip to content

Commit 30126a5

Browse files
author
Alex Klymenko
committed
cleanup: improving code readability using enum to represent beads
1 parent f3555ac commit 30126a5

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/main/java/com/thealgorithms/sorts/BeadSort.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
import java.util.Arrays;
44

55
public class BeadSort {
6+
private enum BeadState {
7+
BEAD,
8+
EMPTY
9+
}
10+
611
/**
712
* Sorts the given array using the BeadSort algorithm.
813
*
@@ -21,37 +26,37 @@ private void allInputsMustBeNonNegative(final int[] array) {
2126
}
2227
}
2328

24-
private boolean[][] fillGrid(final int[] array) {
29+
private BeadState[][] fillGrid(final int[] array) {
2530
final var maxValue = Arrays.stream(array).max().orElse(0);
2631
var grid = getEmptyGrid(array.length, maxValue);
2732

2833
int[] count = new int[maxValue];
2934
for (int i = 0, arrayLength = array.length; i < arrayLength; i++) {
3035
int k = 0;
3136
for (int j = 0; j < array[i]; j++) {
32-
grid[count[maxValue - k - 1]++][k] = true;
37+
grid[count[maxValue - k - 1]++][k] = BeadState.BEAD;
3338
k++;
3439
}
3540
}
3641
return grid;
3742
}
3843

39-
private boolean[][] getEmptyGrid(final int arrayLength, final int maxValue) {
40-
boolean[][] grid = new boolean[arrayLength][maxValue];
44+
private BeadState[][] getEmptyGrid(final int arrayLength, final int maxValue) {
45+
BeadState[][] grid = new BeadState[arrayLength][maxValue];
4146
for (int i = 0; i < arrayLength; i++) {
4247
for (int j = 0; j < maxValue; j++) {
43-
grid[i][j] = false;
48+
grid[i][j] = BeadState.EMPTY;
4449
}
4550
}
4651

4752
return grid;
4853
}
4954

50-
private int[] extractSortedFromGrid(final boolean[][] grid) {
55+
private int[] extractSortedFromGrid(final BeadState[][] grid) {
5156
int[] sorted = new int[grid.length];
5257
for (int i = 0; i < grid.length; i++) {
5358
int k = 0;
54-
for (int j = 0; j < grid[grid.length - 1 - i].length && grid[grid.length - 1 - i][j]; j++) {
59+
for (int j = 0; j < grid[grid.length - 1 - i].length && grid[grid.length - 1 - i][j].equals(BeadState.BEAD); j++) {
5560
k++;
5661
}
5762
sorted[i] = k;

0 commit comments

Comments
 (0)