BinaereSuche.md
... ...
@@ -0,0 +1,63 @@
1
+# Binäre Suche
2
+
3
+## Funktionsweise der binären Suche
4
+
5
+Die binäre Suche ist ein effizienter Algorithmus zum Auffinden eines Elements in einer **sortierten Liste**.
6
+
7
+## Voraussetzungen
8
+- Die Liste oder das Array **muss sortiert** sein.
9
+- Der Algorithmus vergleicht das gesuchte Element mit dem **mittleren Element** des aktuellen Suchbereichs.
10
+
11
+## Ablauf
12
+1. Bestimme die Mitte des Suchbereichs.
13
+2. Vergleiche das mittlere Element mit dem gesuchten Wert.
14
+3. Bei Gleichheit: Suche erfolgreich beendet.
15
+4. Ist der gesuchte Wert kleiner: Suche im linken Teil weiter.
16
+5. Ist der gesuchte Wert größer: Suche im rechten Teil weiter.
17
+6. Wiederhole, bis das Element gefunden ist oder der Suchbereich leer ist.
18
+
19
+![binary search](binaer.png)
20
+
21
+## Code
22
+
23
+```java
24
+public class BinareSuche {
25
+ public static int binareSuche(int[] array, int zielwert) {
26
+ int links = 0;
27
+ int rechts = array.length - 1;
28
+
29
+ while (links <= rechts) {
30
+ int mitte = links + (rechts - links) / 2;
31
+
32
+ if (array[mitte] == zielwert) {
33
+ return mitte; // Element gefunden
34
+ }
35
+
36
+ if (array[mitte] < zielwert) {
37
+ links = mitte + 1; // Rechter Teil
38
+ } else {
39
+ rechts = mitte - 1; // Linker Teil
40
+ }
41
+ }
42
+ return -1; // Element nicht gefunden
43
+ }
44
+
45
+ public static void main(String[] args) {
46
+ int[] zahlen = {2, 4, 7, 10, 15, 20};
47
+ int ergebnis = binareSuche(zahlen, 10);
48
+
49
+ if (ergebnis != -1) {
50
+ System.out.println("Wert gefunden an Index: " + ergebnis);
51
+ } else {
52
+ System.out.println("Wert nicht gefunden.");
53
+ }
54
+ }
55
+}
56
+```
57
+
58
+## Gut zu wissen
59
+
60
+- Effizienz: Zeitkomplexität $O(\log n)$.
61
+- Voraussetzung: Sortierte Daten.
62
+- Anwendung: Ideal für große, sortierte Arrays.
63
+
binaer.png
... ...
Binary files /dev/null and b/binaer.png differ