Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Sortierte TObjectList - Einträge richtig einfügen

  Alt 17. Jul 2015, 18:18
Beeindruckend, aber vielleicht ein bisschen l'art pour l'art? Es gibt auch auch die Frage, warum der Rüde sich die Eier leckt, aber die wollen wir jetzt nicht weiter vertiefen.

Wenn mich nicht alles täuscht, dann ist das letzte Vexierspielchen ja auch keine binäre Suche mehr, sondern eine einfache Interation?

Da der Abend hereinbricht, komme ich jetzt zu dem Schluss, dass mir die Lösungen aus #13 und #16 am einfachsten erscheinen, die #13 ist kürzer, die #16 wohl sauberer. Für mich wird es wohl (aber man weiß, Sir Rufos Trickkiste ist noch lange nicht leer) eine modifizierte Form werden:
Delphi-Quellcode:
function TZielListe.SucheWert(const Wert:string;var P:Integer):Boolean;
var LItem:TZiel;
begin
  LItem := TZiel.Create;
  try
    LItem.Wert := Wert;
    Result := BinarySearch(
      LItem, p,
      TComparer<TZiel>.Construct(
        function (const L, R: TZiel): Integer
        begin
          Result := AnsiCompareText(L.Wert,R.Wert);
        end ));
  finally
    LItem.Free;
  end;
end;
So bekomme ich mit p auch das gefundene Element oder im Negativfalle die Einfügeposition zurück.
Eigentlich spricht auch nichts gegen die Dummy-Lösung, man spart sich das Create und Free und initialisert wegen des Compiler-Gemeckers einfach mit nil.
  Mit Zitat antworten Zitat