diff --git a/subjects/java/checkpoints/flexisort/ExerciseRunner.java b/subjects/java/checkpoints/flexisort/ExerciseRunner.java new file mode 100644 index 000000000..2eb3a2270 --- /dev/null +++ b/subjects/java/checkpoints/flexisort/ExerciseRunner.java @@ -0,0 +1,17 @@ +public class ExerciseRunner { + public static void main(String[] args) { + int[] array = {64, 34, 25, 12, 22, 11, 90}; + + // Test BubbleSort + Sorter bubbleSorter = new BubbleSort(); + bubbleSorter.setArray(array.clone()); + bubbleSorter.sort(); + System.out.println("BubbleSorted array: " + Arrays.toString(bubbleSorter.getArray())); + + // Test InsertionSort + Sorter insertionSorter = new InsertionSort(); + insertionSorter.setArray(array.clone()); + insertionSorter.sort(); + System.out.println("InsertionSorted array: " + Arrays.toString(insertionSorter.getArray())); + } +} \ No newline at end of file diff --git a/subjects/java/checkpoints/flexisort/README.md b/subjects/java/checkpoints/flexisort/README.md new file mode 100644 index 000000000..16cfb9d17 --- /dev/null +++ b/subjects/java/checkpoints/flexisort/README.md @@ -0,0 +1,78 @@ +## Flexisort + +### Instructions + +Create an abstract class `Sorter` that will be used as a base class for sorting algorithms. This class should have an abstract method `sort` that will be implemented by its child classes. Additionally, it should have methods to set and get the array to sort. + +Implement two child classes: + +- `BubbleSort` which implements the bubble sort algorithm. +- `InsertionSort` which implements the insertion sort algorithm. + +### Expected Classes + +```java +public abstract class Sorter { + private int[] array; + + public int[] getArray() { + // getter method + } + + public void setArray(int[] array) { + // setter method + } + + public abstract void sort(); +} + +public class BubbleSort extends Sorter { + @Override + public void sort() { + // bubble sort algorithm implementation + } +} + +public class InsertionSort extends Sorter { + @Override + public void sort() { + // insertion sort algorithm implementation + } +} +``` + +### Usage + +Here is a possible ExerciseRunner.java to test your classes: + +```java +import java.util.Arrays; + +public class ExerciseRunner { + public static void main(String[] args) { + int[] array = {64, 34, 25, 12, 22, 11, 90}; + + // Test BubbleSort + Sorter bubbleSorter = new BubbleSort(); + bubbleSorter.setArray(array.clone()); + bubbleSorter.sort(); + System.out.println("BubbleSorted array: " + Arrays.toString(bubbleSorter.getArray())); + + // Test InsertionSort + Sorter insertionSorter = new InsertionSort(); + insertionSorter.setArray(array.clone()); + insertionSorter.sort(); + System.out.println("InsertionSorted array: " + Arrays.toString(insertionSorter.getArray())); + } +} +``` + +### Expected Output + +```shell +$ javac *.java -d build +$ java -cp build ExerciseRunner +BubbleSorted array: [11, 12, 22, 25, 34, 64, 90] +InsertionSorted array: [11, 12, 22, 25, 34, 64, 90] +$ +```