Wie man über so ein kleines Problemchen so viel schreiben kann...
Hier
Delphi-Quellcode:
Function FindSmallestGap (aArray : Array Of Integer) : Integer;
Var
l,h,m : Integer;
Begin
l := 0; h := Length (aArray) - 1;
While l<h do begin
m := (l+h) div 2;
if aArray[m] = m+1 Then
l := m + 1
else
h := m - 1;
End;
Result := l+1;
End;
Findet die kleinste Lücke im Array. Bedingung: Zahlen von 1...n. Ich habe es rudimentär getestet, es sollte aber funktionieren.
Es liefert die Zahl I, die an der Stelle aArray [I-1] eingefügt werden muss.