From 0d62c6e356174edadebbb5311110aacfcf91813c Mon Sep 17 00:00:00 2001 From: obai Date: Mon, 12 Aug 2024 23:41:59 +0200 Subject: [PATCH] Algorithmus --- .../src/Algorithmus/Algorithmus.java | 126 ++++++++++++++++++ Programmierung2/src/Übungen/Abrechnung.java | 1 + .../src/Übungen/GehaltsAbrechnung.java | 1 + .../src/Übungen/Lohnabrechnung.java | 1 + Programmierung2/src/Übungen/Mitarbeiter.java | 1 + Programmierung2/src/Übungen/Nacnhrichten.java | 2 +- .../src/Übungen/PersonalVerwaltung.java | 1 + Programmierung2/src/Übungen/Radio.java | 1 + .../src/Übungen/TestMitarbeiter.java | 1 + Programmierung2/src/Übungen/TestRadio.java | 1 + Programmierung2/src/Übungen/Tic_Tac_Toe.java | 1 + Programmierung2/src/Übungen/Whatsapp.java | 1 + Programmierung2/src/Übungen/WhatsappTest.java | 1 + 13 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 Programmierung2/src/Algorithmus/Algorithmus.java diff --git a/Programmierung2/src/Algorithmus/Algorithmus.java b/Programmierung2/src/Algorithmus/Algorithmus.java new file mode 100644 index 0000000..101318f --- /dev/null +++ b/Programmierung2/src/Algorithmus/Algorithmus.java @@ -0,0 +1,126 @@ +package Algorithmus; + +public class Algorithmus { + + public static void main(String[] args) { + + int[] arr = { 4,34,2,6,8,12,21}; + int[] sortedArray =insertionSort(arr) ; + + for (int i : sortedArray) + System.out.print(i + " "); + + + } + + public static int[] mergeSort(int[] arr) { + /* + * Big-O: O(n log n) + */ + return arr; + } + + public static int[] insertionSort(int[] arr) { + /* + * Big-O: O(n²) + * indexes: 0 1 2 3 4 5 6 + * Beispiel array = int[] arr = { 4,34,2,6,8,10,21}; + */ + + for (int i = 1; i < arr.length; i++) { + // speicher den Wert an i Index nehmen an dass i = 2; + // also z.b: Key = 2; + int key = arr[i]; + // speicher das vorhägie Index + int j = i - 1; + /* + * Also die While Loop Konzept ist: + * - betrachtet wird die 2 an Index 2 + * - j = 1 also >= 0 + * - arr[i] ist in dem Fall = 34 + * - ist die 34 > 2, weil key = 2; + * - ja + */ + while (j >= 0 && arr[j] > key) { + //also ersetzen 34 druch die 2 + // aber die 2 wurde erst in var key abgespeichert + arr[j + 1] = arr[j]; + // index j -1 + j = j - 1; + } + // hier ersetzen wir die 34 durch die 2 + arr[j + 1] = key; + } + + return arr; // Rückgabe des sortierten Arrays + } + + + public static int[] selectionSort(int[] arr) { + + /* + * Big-O: O(n²) + * indexes: 0 1 2 3 4 5 6 + * Beispiel array = int[] arr = { 4,34,2,6,8,10,21}; + * + */ + //Äueßere Schleife beginnt bei Index(0) bis zu index (6) + // Beispiel wert + for (int i = 0; i < arr.length - 1; i++) { // i = index (4) + int minIndex = i;// minIndex = index (4) + + // überprüft ob die 4 < andere Element im array + // es soll ab i + 1 überprüft werden + for (int j = i + 1; j < arr.length; j++) { + //ja, die 2 < 4 + if (arr[j] < arr[minIndex]) { + // also minIndex = index (2) also gleich 2 + minIndex = j; + } + } + // falls minIndex anderes Index bekommen hat? + if (minIndex != i) { + //speichere erst die 4 hier + int temp = arr[i]; + // ersetzte die 2 durch die 4 + arr[i] = arr[minIndex]; + //ersetze die 4 durch die 2 + arr[minIndex] = temp; + } + } + + return arr; // Rückgabe des sortierten Arrays + } + + public static int[] bubbleSort(int[] arr) { + // Big-O: O(n²) + for (int i = 0; i < arr.length; i++) + for(int j = 0; j < arr.length; j++) + if (arr[i] < arr[j]) { + int temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + return arr; + } + + public static int binarySearch(int[] arr, int value) { + int erst = 0; // Initialisierung des Startindexes auf den ersten Index des Arrays + int last = arr.length - 1; // Initialisierung des Endindexes auf den letzten Index des Arrays + + while (erst <= last) { // Schleife läuft, solange der Startindex kleiner oder gleich dem Endindex ist + int mittel = (erst + last) / 2; // Berechnung des mittleren Indexes durch Addition von Start und Ende, dann Division durch 2 + + if (arr[mittel] == value) // Überprüfung, ob der Wert im Array an der mittleren Position dem gesuchten Wert entspricht + return mittel; // Wenn ja, wird der mittlere Index als Ergebnis zurückgegeben + else if (arr[mittel] < value) // Überprüfung, ob der Wert im Array an der mittleren Position kleiner als der gesuchte Wert ist + erst = mittel + 1; // Wenn ja, wird der Startindex auf die Position nach der Mitte gesetzt + + else // Wenn der Wert im Array an der mittleren Position größer als der gesuchte Wert ist + last = mittel - 1; // Setzt den Endindex auf die Position vor der Mitte + } + return -1; // Wenn der Wert nicht gefunden wird, wird -1 zurückgegeben + } + + +} diff --git a/Programmierung2/src/Übungen/Abrechnung.java b/Programmierung2/src/Übungen/Abrechnung.java index c7d9033..938d788 100644 --- a/Programmierung2/src/Übungen/Abrechnung.java +++ b/Programmierung2/src/Übungen/Abrechnung.java @@ -1,3 +1,4 @@ +package Übungen; public abstract class Abrechnung { private int periode; private Mitarbeiter mitarbeiter; diff --git a/Programmierung2/src/Übungen/GehaltsAbrechnung.java b/Programmierung2/src/Übungen/GehaltsAbrechnung.java index 04d776e..bad1adf 100644 --- a/Programmierung2/src/Übungen/GehaltsAbrechnung.java +++ b/Programmierung2/src/Übungen/GehaltsAbrechnung.java @@ -1,3 +1,4 @@ +package Übungen; public class GehaltsAbrechnung extends Abrechnung { private double gehalt; diff --git a/Programmierung2/src/Übungen/Lohnabrechnung.java b/Programmierung2/src/Übungen/Lohnabrechnung.java index e7560f5..c311e68 100644 --- a/Programmierung2/src/Übungen/Lohnabrechnung.java +++ b/Programmierung2/src/Übungen/Lohnabrechnung.java @@ -1,3 +1,4 @@ +package Übungen; public class Lohnabrechnung extends Abrechnung { private double stundenLohn; diff --git a/Programmierung2/src/Übungen/Mitarbeiter.java b/Programmierung2/src/Übungen/Mitarbeiter.java index 35a7b06..59dc30d 100644 --- a/Programmierung2/src/Übungen/Mitarbeiter.java +++ b/Programmierung2/src/Übungen/Mitarbeiter.java @@ -1,3 +1,4 @@ +package Übungen; public class Mitarbeiter { protected int id; protected String name; diff --git a/Programmierung2/src/Übungen/Nacnhrichten.java b/Programmierung2/src/Übungen/Nacnhrichten.java index f4d5c19..d4fcb03 100644 --- a/Programmierung2/src/Übungen/Nacnhrichten.java +++ b/Programmierung2/src/Übungen/Nacnhrichten.java @@ -1,4 +1,4 @@ - +package Übungen; import java.util.ArrayList; public class Nacnhrichten{ diff --git a/Programmierung2/src/Übungen/PersonalVerwaltung.java b/Programmierung2/src/Übungen/PersonalVerwaltung.java index 648a974..3a6daf0 100644 --- a/Programmierung2/src/Übungen/PersonalVerwaltung.java +++ b/Programmierung2/src/Übungen/PersonalVerwaltung.java @@ -1,3 +1,4 @@ +package Übungen; import java.lang.reflect.Array; import java.util.ArrayList; diff --git a/Programmierung2/src/Übungen/Radio.java b/Programmierung2/src/Übungen/Radio.java index 12cf8bb..a749f75 100644 --- a/Programmierung2/src/Übungen/Radio.java +++ b/Programmierung2/src/Übungen/Radio.java @@ -1,3 +1,4 @@ +package Übungen; public class Radio { boolean eingeschaltet; int lautstaerker; diff --git a/Programmierung2/src/Übungen/TestMitarbeiter.java b/Programmierung2/src/Übungen/TestMitarbeiter.java index 1cb5e53..48bb6a6 100644 --- a/Programmierung2/src/Übungen/TestMitarbeiter.java +++ b/Programmierung2/src/Übungen/TestMitarbeiter.java @@ -1,3 +1,4 @@ +package Übungen; public class TestMitarbeiter { public static void main(String[] args) { diff --git a/Programmierung2/src/Übungen/TestRadio.java b/Programmierung2/src/Übungen/TestRadio.java index 4e5742f..ce10026 100644 --- a/Programmierung2/src/Übungen/TestRadio.java +++ b/Programmierung2/src/Übungen/TestRadio.java @@ -1,3 +1,4 @@ +package Übungen; public class TestRadio { public static void main(String[] args) { diff --git a/Programmierung2/src/Übungen/Tic_Tac_Toe.java b/Programmierung2/src/Übungen/Tic_Tac_Toe.java index 6891b27..bb1f7ec 100644 --- a/Programmierung2/src/Übungen/Tic_Tac_Toe.java +++ b/Programmierung2/src/Übungen/Tic_Tac_Toe.java @@ -1,3 +1,4 @@ +package Übungen; import java.util.Scanner; public class Tic_Tac_Toe { diff --git a/Programmierung2/src/Übungen/Whatsapp.java b/Programmierung2/src/Übungen/Whatsapp.java index f4ed4d2..be0840c 100644 --- a/Programmierung2/src/Übungen/Whatsapp.java +++ b/Programmierung2/src/Übungen/Whatsapp.java @@ -1,3 +1,4 @@ +package Übungen; import java.util.ArrayList; public class Whatsapp extends Nacnhrichten { diff --git a/Programmierung2/src/Übungen/WhatsappTest.java b/Programmierung2/src/Übungen/WhatsappTest.java index 2a2e29f..0126a95 100644 --- a/Programmierung2/src/Übungen/WhatsappTest.java +++ b/Programmierung2/src/Übungen/WhatsappTest.java @@ -1,3 +1,4 @@ +package Übungen; import java.util.ArrayList; public class WhatsappTest {