From b91dd9f0fd4053f729c207b5d69f47300a2df5a8 Mon Sep 17 00:00:00 2001 From: student Date: Wed, 1 Apr 2026 13:31:22 +0200 Subject: [PATCH] =?UTF-8?q?Radix=20sort=20verzweiflung=20&&=20Test=20f?= =?UTF-8?q?=C3=BCr=20List?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PR2pvl/src/Knoten.java | 23 +++++----- PR2pvl/src/LinkedListTest.java | 16 +++++-- PR2pvl/src/RadixSort.java | 77 ++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 14 deletions(-) create mode 100644 PR2pvl/src/RadixSort.java diff --git a/PR2pvl/src/Knoten.java b/PR2pvl/src/Knoten.java index d655bca..f2ee050 100644 --- a/PR2pvl/src/Knoten.java +++ b/PR2pvl/src/Knoten.java @@ -1,7 +1,6 @@ public class Knoten { - private static final Exception IndexOutOfBoundsException = null; private int wert; private Knoten nachfolger; @@ -21,28 +20,30 @@ public class Knoten { public int auslesenAnPos(int pos) throws Exception { - pos--; - if(nachfolger==null && pos>1) { - throw IndexOutOfBoundsException; - - } - if(pos >0 ) { + + int r = 0; + if(pos >0 && nachfolger !=null) { + pos--; nachfolger.auslesenAnPos(pos); } else { - return this.wert; + r= this.wert; + return r; + } + if(nachfolger==null && pos>1) { + + throw new IndexOutOfBoundsException("Illegal Statement"); } - - return 0; + return r; } public void loeschenAnPos(int pos) throws Exception{ if(this.nachfolger==null) { - throw IndexOutOfBoundsException; + throw new IndexOutOfBoundsException(); } if(pos>1) { this.nachfolger = nachfolger.nachfolger; diff --git a/PR2pvl/src/LinkedListTest.java b/PR2pvl/src/LinkedListTest.java index 9aae55f..2ef1da6 100644 --- a/PR2pvl/src/LinkedListTest.java +++ b/PR2pvl/src/LinkedListTest.java @@ -20,7 +20,17 @@ class LinkedListTest { LinkedList R = new LinkedList(10); R.einfuegenAmEnde(3); - Assert.assertEquals(3, R.auslesenAnPos(2)); + R.einfuegenAmEnde(4); + R.einfuegenAmEnde(5); + R.einfuegenAmEnde(6); + R.einfuegenAmEnde(7); + + Assert.assertNotSame(3, R.auslesenAnPos(0)); + Assert.assertNotSame(3, R.auslesenAnPos(2)); + Assert.assertEquals(10, R.auslesenAnPos(0)); + Assert.assertEquals(4, R.auslesenAnPos(2)); + + + } - -} +} \ No newline at end of file diff --git a/PR2pvl/src/RadixSort.java b/PR2pvl/src/RadixSort.java new file mode 100644 index 0000000..971fe0d --- /dev/null +++ b/PR2pvl/src/RadixSort.java @@ -0,0 +1,77 @@ +import java.util.LinkedList; +public class RadixSort { + + public static void main(String[] args) { + int[] arr = {10,9,8,7,6,5,4,3,2,1}; + radixSort(arr); + for(int i : arr) System.out.println(i); + } + + //int Arr + public static void radixSort(int[] arr) { + int größteZ=arr[0]; + + //Buckets als Listen anlegen + LinkedList B0 = new LinkedList<>(); + LinkedList B1 = new LinkedList<>(); + LinkedList B2 = new LinkedList<>(); + LinkedList B3 = new LinkedList<>(); + LinkedList B4 = new LinkedList<>(); + LinkedList B5 = new LinkedList<>(); + LinkedList B6 = new LinkedList<>(); + LinkedList B7 = new LinkedList<>(); + LinkedList B8 = new LinkedList<>(); + LinkedList B9 = new LinkedList<>(); + + + + + + for(int i = 0; i < arr.length; i++) { + if(arr[i] > größteZ) größteZ=arr[i]; + } + int cnt=1; + while(größteZ / 10 >0) { + größteZ= größteZ%10; + cnt++; + } + + + for(int i = 0; i< cnt; i++) { + //Befuellen der Buckets; + for(int d = 0; d< arr.length; d++ ) { + int r = arr[i] % 10; + switch(r) { + case 0: B0.add(arr[i]); + case 1: B1.add(arr[i]); + case 2: B2.add(arr[i]); + case 3: B3.add(arr[i]); + case 4: B4.add(arr[i]); + case 5: B5.add(arr[i]); + case 6: B6.add(arr[i]); + case 7: B7.add(arr[i]); + case 8: B8.add(arr[i]); + case 9: B9.add(arr[i]); + } + } + + + // Buckets durchlaufen und wieder einsortierten in die ursprüngliche Arr + int e =0; + for(int in : B0) {arr[e]= in; e++;} + for(int in : B1) {arr[e]= in; e++;} + for(int in : B2) {arr[e]= in; e++;} + for(int in : B3) {arr[e]= in; e++;} + for(int in : B4) {arr[e]= in; e++;} + for(int in : B5) {arr[e]= in; e++;} + for(int in : B6) {arr[e]= in; e++;} + for(int in : B7) {arr[e]= in; e++;} + for(int in : B8) {arr[e]= in; e++;} + for(int in : B9) {arr[e]= in; e++;} + + } + + + + } +}