mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.9 KiB
79 lines
1.9 KiB
5 months ago
|
## 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]
|
||
|
$
|
||
|
```
|