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);
+}