From 0eb671dddf3a7e874bcb7c4d59305b7b2bf6178e Mon Sep 17 00:00:00 2001 From: Paul H Date: Tue, 25 Mar 2025 20:45:08 +0100 Subject: [PATCH] Implemented BubbleSort --- list/src/main/java/de/vivi/list/Main.java | 17 ++++++++---- .../java/de/vivi/list/list/ArrayByteList.java | 7 +++++ .../java/de/vivi/list/sort/BubbleSort.java | 27 +++++++++++++++++++ .../main/java/de/vivi/list/sort/ByteSort.java | 8 ++++++ 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 list/src/main/java/de/vivi/list/sort/BubbleSort.java create mode 100644 list/src/main/java/de/vivi/list/sort/ByteSort.java diff --git a/list/src/main/java/de/vivi/list/Main.java b/list/src/main/java/de/vivi/list/Main.java index ccac39c..8824ab0 100644 --- a/list/src/main/java/de/vivi/list/Main.java +++ b/list/src/main/java/de/vivi/list/Main.java @@ -3,6 +3,8 @@ package de.vivi.list; import de.vivi.list.list.ArrayByteList; import de.vivi.list.list.ByteList; import de.vivi.list.list.LinkedByteList; +import de.vivi.list.sort.BubbleSort; +import de.vivi.list.sort.ByteSort; public class Main { @@ -15,7 +17,7 @@ public class Main { testList(linked); // testList(combined); - // testSort(array); + testSort(array); // testSort(linked); // testSort(combined); } @@ -26,6 +28,11 @@ public class Main { list.add((byte) 5); list.add((byte) -86); list.add((byte) 3); + list.add((byte) 100); + list.add((byte) 20); + list.add((byte) 40); + list.add((byte) -100); + list.add((byte) 40); // list: [10, 5, -86, 3] @@ -76,14 +83,14 @@ public class Main { // } } -// private static void testSort(ByteList list) { -// ByteSort bubble = new BubbleSort(); + private static void testSort(ByteList list) { + ByteSort bubble = new BubbleSort(); // ByteSort merge = new MergeSort(); // ByteSort bogo = new BogoSort(); // // // sort the lists with the sorting algorithm -// bubble.sort(list.copy()); + bubble.sort(list); // merge.sort(list.copy()); // bogo.sort(list.copy()); -// } + } } diff --git a/list/src/main/java/de/vivi/list/list/ArrayByteList.java b/list/src/main/java/de/vivi/list/list/ArrayByteList.java index dcb2246..35b5d08 100644 --- a/list/src/main/java/de/vivi/list/list/ArrayByteList.java +++ b/list/src/main/java/de/vivi/list/list/ArrayByteList.java @@ -1,5 +1,7 @@ package de.vivi.list.list; +import java.util.Arrays; + public class ArrayByteList implements ByteList { private byte[] values; @@ -48,4 +50,9 @@ public class ArrayByteList implements ByteList { public int size() { return values.length; } + + @Override + public String toString() { + return Arrays.toString(values); + } } diff --git a/list/src/main/java/de/vivi/list/sort/BubbleSort.java b/list/src/main/java/de/vivi/list/sort/BubbleSort.java new file mode 100644 index 0000000..861edc8 --- /dev/null +++ b/list/src/main/java/de/vivi/list/sort/BubbleSort.java @@ -0,0 +1,27 @@ +package de.vivi.list.sort; + +import de.vivi.list.list.ByteList; + +public class BubbleSort implements ByteSort { + + @Override + public void sort(ByteList list) { + boolean swapped = true; + + while (swapped) { + swapped = false; + + for (int i = 0; i < list.size() - 1; i++) { + if (list.get(i) > list.get(i + 1)) { + swapped = true; + byte temp = list.get(i); + + list.set(i, list.get(i + 1)); + list.set(i + 1, temp); + } + } + + System.out.println(list); + } + } +} diff --git a/list/src/main/java/de/vivi/list/sort/ByteSort.java b/list/src/main/java/de/vivi/list/sort/ByteSort.java new file mode 100644 index 0000000..073fa77 --- /dev/null +++ b/list/src/main/java/de/vivi/list/sort/ByteSort.java @@ -0,0 +1,8 @@ +package de.vivi.list.sort; + +import de.vivi.list.list.ByteList; + +public interface ByteSort { + + void sort(ByteList list); +}