20% off with code ERSTIS26
5 min read 30 Jul 2026

Algorithmen Sortieren Suchen: Java-Grundlagen einfach erklärt

Lerne die wichtigsten Sortier- und Suchalgorithmen in Java verstehen. Vom Bubblesort bis zur binären Suche - perfekt für IT-Einsteiger.

Marcel Schmidtpeter By Marcel Schmidtpeter 30 Jul 2026

Stell dir vor, du suchst eine bestimmte Prüfungsleistung im Zeugnis - und die Noten sind komplett unsortiert. Du müsstest jede Zeile einzeln durchgehen. Genau dieses Problem lösen Algorithmen für Sortieren und Suchen. Sie sind die Basis jeder Datenverarbeitung und gehören zum absoluten Pflichtwissen für Fachinformatiker, IT-Studenten und jeden, der programmieren lernt.

Warum? Weil fast jede Anwendung Daten verwaltet - egal ob Kundenliste, Lagerbestand oder Spielergebnisse. Wer hier die Grundlagen nicht beherrscht, schreibt schnell ineffiziente Programme, die bei wachsenden Datenmengen extrem langsam werden. Algorithmen Sortieren Suchen sind also nicht nur Prüfungswissen, sondern tägliche Praxis.

Merke: Suchen und Sortieren sind eng verwandt. In sortierten Daten lässt sich viel schneller suchen als in unsortierten. Das ist der Kern vieler Algorithmen.

Was ist ein Algorithmus?

Ein Algorithmus ist eine fest definierte Schrittfolge zur Lösung eines Problems. Stell dir ein Kochrezept vor: Jeder Schritt steht in einer bestimmten Reihenfolge, und am Ende kommt ein vorhersehbares Ergebnis heraus. Bei Algorithmen zum Sortieren und Suchen geht es konkret darum, Datenmengen in eine bestimmte Reihenfolge zu bringen oder ein bestimmtes Element darin zu finden.

Algorithmen bewerten wir anhand zweier Kriterien:

  • Zeitkomplexität: Wie längert der Algorithmus, je mehr Daten er verarbeiten muss?

  • Raumkomplexität: Wie viel zusätzlichen Speicher braucht er?

Beide werden in der sogenannten O-Notation (auch Landau-Symbol genannt) angegeben. Mehr dazu weiter unten.

Wenn du dich tiefer mit den dafür nötigen Datenstrukturen befassen willst, schau dir unseren Beitrag zu Datenstrukturen Grundlagen an.

Wie funktionieren lineare und binäre Suche?

Die lineare Suche ist der einfachste Suchalgorithmus: Sie durchläuft ein Array (eine Datenstruktur, die mehrere Werte gleichen Typs speichert) Element für Element, bis das gesuchte Element gefunden wurde. Die binäre Suche setzt voraus, dass die Daten bereits sortiert sind. Sie halbiert die Datenmenge bei jedem Schritt und findet so das Element deutlich schneller.

Stell dir vor, du suchst im Telefonbuch nach "Müller". Du fängst nicht vorne an und liest jeden Namen - stattdessen schlägst du in der Mitte auf und entscheidest: Steht Müller vor oder hinter der aktuellen Seite? Genau das macht die binäre Suche.

Eigenschaft

Lineare Suche

Binäre Suche

Voraussetzung

Keine (unsortierte Daten)

Sortierte Daten

Geschwindigkeit

Langsam bei großen Mengen

Sehr schnell

Aufwand (O-Notation)

O(n)

O(log n)

Beispiel

Namensliste ungeordnet durchsuchen

Im sortierten Telefonbuch blättern

Hier siehst du beide Algorithmen in Java umgesetzt. Das Array in der binären Suche muss bereits sortiert sein:

java
public class SuchAlgorithmen {

  // Lineare Suche: Geht jedes Element durch
  public static int lineareSuche(int[] zahlen, int ziel) {
    for (int i = 0; i < zahlen.length; i++) {
      if (zahlen[i] == ziel) {
        return i; // Index des gefundenen Elements
      }
    }
    return -1; // Nicht gefunden
  }

  // Binaere Suche: Setzt sortiertes Array voraus!
  public static int binaereSuche(int[] zahlen, int ziel) {
    int links = 0;
    int rechts = zahlen.length - 1;

    while (links <= rechts) {
      int mitte = (links + rechts) / 2;

      if (zahlen[mitte] == ziel) {
        return mitte; // Gefunden!
      } else if (zahlen[mitte] < ziel) {
        links = mitte + 1; // Weiter rechts suchen
      } else {
        rechts = mitte - 1; // Weiter links suchen
      }
    }
    return -1; // Nicht gefunden
  }

  public static void main(String[] args) {
    int[] unsortiert = {5, 2, 9, 1, 7};
    int[] sortiert = {1, 2, 5, 7, 9};

    System.out.println("Lineare Suche: " + lineareSuche(unsortiert, 9));
    System.out.println("Binaere Suche: " + binaereSuche(sortiert, 9));
  }
}

Wichtig: Die binäre Suche funktioniert *nur* auf sortierten Daten. Auf unsortierten Arrays kann sie falsche Ergebnisse liefern, ohne dass du es merkst - der Algorithmus geht davon aus, dass alles links der Mitte kleiner und alles rechts größer ist.

Was ist Selection Sort?

Selection Sort (Auswahlsortieren) ist der verständlichste Sortieralgorithmus: Er sucht in jedem Durchlauf das kleinste verbleibende Element und setzt es an die richtige Position. Der Algorithmus ist leicht zu verstehen, aber bei großen Datenmengen sehr langsam.

Stell dir vor, du hast einen Stapel Klausuren und willst sie nach Noten sortieren. Du suchst immer die beste Note aus dem Stapel heraus und legst sie ganz nach vorne. Dann suchst du im Rest-Stapel die nächstbeste, und so weiter.

java
public class SelectionSort {

  public static void selectionSort(int[] zahlen) {
    for (int i = 0; i < zahlen.length - 1; i++) {
      int minIndex = i;

      // Kleinstes Element im Rest-Array finden
      for (int j = i + 1; j < zahlen.length; j++) {
        if (zahlen[j] < zahlen[minIndex]) {
          minIndex = j;
        }
      }

      // Tauschen, wenn noetig
      if (minIndex != i) {
        int temp = zahlen[i];
        zahlen[i] = zahlen[minIndex];
        zahlen[minIndex] = temp;
      }
    }
  }

  public static void main(String[] args) {
    int[] zahlen = {64, 25, 12, 22, 11};
    selectionSort(zahlen);

    for (int z : zahlen) {
      System.out.print(z + " ");
    }
  }
}

Selection Sort hat immer eine Zeitkomplexität von O(n²) - egal ob die Daten schon sortiert sind oder nicht. Es gibt keine Abkürzung.

Wann nutzt man Bubble Sort?

Bubble Sort vergleicht benachbarte Elemente und tauscht sie, wenn sie in der falschen Reihenfolge sind. Nach jedem Durchlauf "blubbert" das größte Element ans Ende des Arrays nach oben - wie eine Luftblase im Wasser.

Merke: Bubble Sort wird in der Praxis fast nie eingesetzt. Er ist didaktisch wertvoll, aber extrem langsam. Nutze ihn nur, um das Prinzip zu verstehen.

Der einzige Vorteil von Bubble Sort: Er ist stabil. Das bedeutet, dass gleiche Elemente ihre ursprüngliche Reihenfolge behalten. Das ist wichtig, wenn du beispielsweise nach Noten sortierst, aber die alphabetische Reihenfolge der Namen erhalten bleiben soll.

Algorithmus

Best-Case

Worst-Case

Stabil?

Praxistauglich?

Selection Sort

O(n²)

O(n²)

Nein

Nein

Bubble Sort

O(n)

O(n²)

Ja

Nein

Java Arrays.sort()

O(n log n)

O(n log n)

Teilweise

Ja

Praxisbeispiel: Noten verarbeiten mit Java-Bordmitteln

In der Praxis implementierst du Such- und Sortieralgorithmen fast nie selbst. Java bringt fertige, hochgradig optimierte Methoden mit, die in der Industrie verwendet werden. Ein typisches Szenario: Du hast unsortierte Prüfungsergebnisse und sollst sowohl sortieren als auch gezielt suchen.

java
import java.util.Arrays;

public class NotenVerwaltung {

  public static void main(String[] args) {
    int[] noten = { 3, 1, 4, 2, 5, 2, 1, 3 };

    // 1. Sortieren mit Java-Bordmitteln (sehr schnell!)
    Arrays.sort(noten);

    System.out.println("Sortierte Noten:");
    for (int note : noten) {
      System.out.print(note + " ");
    }

    // 2. Suchen im sortierten Array
    int ziel = 2;
    int index = Arrays.binarySearch(noten, ziel);

    if (index >= 0) {
      System.out.println("\nNote " + ziel + " gefunden an Index " + index);
    } else {
      System.out.println("\nNote nicht gefunden");
    }
  }
}

Die Methode `Arrays.sort()` verwendet für primitive Datentypen intern einen optimierten Algorithmus namens Dual-Pivot Quicksort - eine Weiterentwicklung des klassischen Quicksort-Verfahrens, das Daten durch geschicktes Aufteilen in Teilmengen sortiert. Für Objekte verwendet Java Timsort, einen stabilen Hybrid-Algorithmus. Details dazu findest du in der offiziellen Oracle-Dokumentation. Eine kompakte Einführung mit weiteren Beispielen bietet auch W3Schools Java Arrays.

Mehr zu Arrays allgemein findest du in unserem Beitrag zu Java Arrays verstehen.

Häufige Anfängerfehler

Fehler 1: Binäre Suche auf unsortierten Daten.

Die binäre Suche funktioniert nur mit sortierten Arrays. Rufst du sie auf unsortierten Daten auf, kann sie falsche Ergebnisse liefern, ohne dass du es merkst. Warum? Weil der Algorithmus davon ausgeht, dass alle Elemente links der Mitte kleiner und rechts größer sind.

Fehler 2: Off-by-One-Errors bei Schleifengrenzen.

Ein klassischer Fehler: Du schreibst `i <= zahlen.length` statt `i < zahlen.length`. Das führt zu einer `ArrayIndexOutOfBoundsException`, weil Array-Indizes bei 0 beginnen und das letzte Element bei `length - 1` steht.

Fehler 3: Den eigenen Algorithmus verwenden statt `Arrays.sort()`.

In der Praxis solltest du für produktiven Code fast immer die Java-Bibliothek nutzen. `Arrays.sort()` wurde über Jahre optimiert und behandelt Sonderfälle wie leere Arrays oder Duplikate korrekt. Selbstgeschriebene Sortieralgorithmen sind Lernmaterial - nichtsdestotrotz wichtig, um zu verstehen, was unter der Haube passiert.

Übungstipp: Sortieren visuell nachvollziehen

Nimm ein Kartenspiel und mische es. Sortiere die Karten einmal mit Selection Sort und einmal mit Bubble Sort. Zähle, wie viele Vergleiche und Tauschoperationen du durchführst. Du wirst sofort verstehen, warum diese Algorithmen ineffizient sind - und warum in der Praxis optimierte Verfahren wie Quicksort oder Mergesort verwendet werden.

Tipp für Klausuren: Wenn du Sortieralgorithmen prüfungsvorbereitend üben willst, nimm kleine Arrays mit 5-6 Elementen und führe jeden Schritt per Hand auf Papier aus. Das ist die schnellste Methode, um das Prinzip wirklich zu verinnerlichen.

FAQ: Häufige Fragen

Was ist der Unterschied zwischen Suchen und Sortieren?

Sortieren bringt Daten in eine definierte Reihenfolge (z. B. aufsteigend). Suchen findet ein bestimmtes Element innerhalb dieser Daten. Sortierte Daten machen das Suchen deutlich effizienter.

Welcher Suchalgorithmus ist der beste?

Für sortierte Daten ist die binäre Suche mit O(log n) sehr schnell. Für unsortierte Daten bleibt die lineare Suche die einzige Option. Java nutzt für praxisrelevante Anwendungen `Arrays.binarySearch()`.

Warum lerne ich Bubble Sort, wenn er ineffizient ist?

Bubble Sort ist didaktisch wertvoll. Er zeigt sehr deutlich, wie Vergleiche und Tauschoperationen funktionieren. In der Berufspraxis oder im Code-Review wirst du ihn jedoch nicht finden.

Was bedeutet O(n) und O(n²)?

Das ist die Big-O-Notation. Sie beschreibt, wie der Aufwand eines Algorithmus mit der Datenmenge wächst. O(n) bedeutet linear - doppelt so viele Daten, doppelt so lange. O(n²) bedeutet quadratisch - doppelt so viele Daten, viermal so lange.

Sollte ich Algorithmen selbst implementieren oder Bibliotheken nutzen?

Zum Lernen: selbst implementieren. Für produktiven Code: Java-Bibliotheken wie `Arrays.sort()` verwenden. Diese sind getestet, optimiert und sicher.

Fazit

Algorithmen Sortieren Suchen sind absolute Grundlagen, die jeder IT-Auszubildende, Student und Berufseinsteiger beherrschen muss. Du solltest verstehen, wie lineare und binäre Suche funktionieren, warum Selection Sort einfach aber langsam ist und wann du besser auf Java-Bibliotheken zurückgreifst.

Wenn du dich weiter in Java einarbeiten willst, schau dir unsere Anleitung zu Java Methoden definieren und aufrufen an.

Brauchst du Unterstützung bei der Vorbereitung auf deine IHK-Prüfung, die nächste Hausübung im Studium oder deinen Einstieg ins Berufsleben? Bei study-it.education findest du erfahrene Nachhilfelehrer, die dir genau da helfen, wo du festhängst.


First chat · €0 · 30 min

Need someone to walk through this with you?

Instead of re-reading: 30 min with a senior dev.

Book a free first chat →
About the author
Marcel Schmidtpeter
Marcel Schmidtpeter

Lerne die wichtigsten Sortier- und Suchalgorithmen in Java verstehen. Vom Bubblesort bis zur binären Suche - perfekt für IT-Einsteiger.

marcel.schmidtpeter@study-it.education →
Keep reading

More reading