Implementierung: Partition Hoare/Lomuto-light

Intermediate Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

Implementiere eine einfache Lomuto-Partition um das letzte Element als Pivot.

Variante Rückgabewert
Lomuto Index des Pivots
Hoare Treffpunkt der Zeiger
## Wo gebraucht

Wer Partition schreibt, versteht Quicksort-Bugs und Off-by-one an den Grenzen. Nützlich beim Lesen von JDK- und Lehrcode.

Vertiefung

Eine Lomuto-light-Variante kann das letzte Element als Pivot wählen. Vor dem Scan liegen links der Grenze nur Werte, die der gewählten Relation entsprechen; zwischen Grenze und Scan liegen bereits untersuchte Werte der anderen Gruppe. Nach dem Scan wird das Pivot an die Grenze gesetzt.

Eine Hoare-nahe Variante lässt zwei Indizes laufen und tauscht Paare, die auf der falschen Seite stehen. Sie benötigt oft weniger Tausche, doch ihr Rückgabewert definiert eine Bereichsgrenze. Beide Varianten sind korrekt, wenn Invarianten, Vergleichsoperatoren und Rekursionsintervalle zusammenpassen.

Schwierigkeitsstufen

  1. Eine Lomuto-Invariante während jedes Scanschritts prüfen.
  2. Hoare-Zeiger bei Duplikaten sicher fortschreiten lassen.
  3. Zu jedem Schema korrekte rekursive Teilintervalle angeben.

Fallstricke

Gemischte Regeln sind gefährlich, etwa ein Hoare-Rückgabewert mit Lomuto-Grenzen. Bei gleichen Pivotwerten müssen Zeiger trotzdem Fortschritt machen, damit die Schleife terminiert.

University approvals: 0
Tasks
Question 1

Implementiere partition(a, lo, hi) mit Pivot a[hi]; Rückgabe finaler Pivot-Index.

Hint

Arrayzugriff erfolgt mit a[index]. Ein Tausch kann mit einer lokalen int-Variable formuliert werden.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Question 2

Was muss bei einer Hoare-nahen Schleife mit vielen Pivot-Duplikaten gesichert sein?

Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Intermediate
  • Completed: 0 users
Creator
Best
Best
BestBuddy