Einzelnen Beitrag anzeigen

egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#17

Re: Füllung einer Zahlenliste

  Alt 13. Sep 2005, 16:01
Zitat von leddl:
Also sofern ich dein Problem wirklich richtig verstanden habe (Sharky macht mich da ganz wuschig ), sollte mein Code es absolut tun. Besonders viel schneller sollte es auch eigentlich nicht gehen, denn du hast ja nur 2 Möglichkeiten:
  • Entweder, du prüfst jede Zahl von 1 bis 999 durch, ob sie vorhanden ist (das kann dann aber etwas länger dauern, da du bei einer ListBox dafür IndexOf aufrufen müsstest, das aber für jede Zahl [bis eine nicht vorhanden ist] alle Items bis zur gesuchten Zahl durchgehen müsste, und das kann sich ja summieren)
  • oder du gehst ein Item nach dem anderen durch und prüfst, ob noch eine Zahl reinpasst. Und das sollte die deutlich schnellere Variante sein. Und genau das macht doch mein Code. Wenn die Liste sortiert ist und es keine Lücken gibt, muß doch jedes Element mit dem Index i den Wert i+1 (ListBox ist 0-basiert, bei 1-basiertem Array wäre es natürlich i) besitzen. Kleiner als i kann der Wert nicht sein, da wir ja mit natürlichen Zahlen rechnen. Ist der Wert am Index i größer als i+1 haben wir ne Lücke und damit die gesuchte Zahl. Voilá!
Es wird eigentlich schon vorher abgefangen, ob diese Zahl schon vorhanden ist. Ich hatte am Anfang auch ähnliche Idee, eine Zahl mit nächster vergleichen und wenn Unterschied nicht 1 ist, dann weiß man, aha, da ist eine Lücke, da kann man eine Zahl reinschreiben. Ich kann auch noch prüfen, ob die letzte Zahl nicht gleich den Zahlenanzahl. Wenn so ist, dann brauche ich auch nichts machen. Mir stört noch, dass ich meine Liste, bzw. Array immer wieder sortieren soll.

Dann brauche ich auf jeden Fall die kleinstmögliche Zahl. Und wie gesagt, maximale Zahl ist 999.
  Mit Zitat antworten Zitat