public/subjects/java/checkpoints/flexisort
amin caa684eb13 docs: adding subject and main 2024-07-04 00:51:45 +01:00
..
ExerciseRunner.java docs: adding subject and main 2024-07-04 00:51:45 +01:00
README.md docs: adding subject and main 2024-07-04 00:51:45 +01:00

README.md

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

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:

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

$ 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]
$