Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   FreePascal Wo binäre Suche schneller, mit Array oder StringList? (https://www.delphipraxis.net/185048-wo-binaere-suche-schneller-mit-array-oder-stringlist.html)

AlexII 11. Mai 2015 13:50

Wo binäre Suche schneller, mit Array oder StringList?
 
Hallo,

ich möchte Daten (DateTime) aus ner SQLite DB in irgendein Objekt laden und binär durchsuchen. Wie mache ich das am schnellsten? Die Daten in Array oder StringList laden, was ist schneller?

Danke!

Namenloser 11. Mai 2015 14:08

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Das Array sollte schneller sein als die Stringlist. Aber meiner Meinung nach ist beides unsinnig.

Mit Abstand am schnellsten sollte es sein, die „Suche“ einfach in SQL zu formulieren und die Datenbank ihre Arbeit machen zu lassen.

AlexII 11. Mai 2015 14:15

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Zitat:

Zitat von Namenloser (Beitrag 1301037)
Das Array sollte schneller sein als die Stringlist. Aber meiner Meinung nach ist beides unsinnig.

Mit Abstand am schnellsten sollte es sein, die „Suche“ einfach in SQL zu formulieren und die Datenbank ihre Arbeit machen zu lassen.

Ok... also es ist folgendes, es geht um einen Wecker. Dieser soll nach mehreren (Hunderte, oder Tausende) Terminen "Ausschau" halten, und bei angegebener Zeit Alarm schlagen. Das heißt, dass ich jede Sekunde die aktuelle Uhrzeit mit der in der DB vergleichen muss. Nun suche ich wie ich das am besten mache. Eine binäre Suche wäre schon sinnvoll, oder?

p80286 11. Mai 2015 14:22

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Warum willst Du suchen?
Eine Liste mit dem kleinsten Element (das in der Zukunft liegt) als erstes Element und gut ist.

Gruß
K-H

Zoot 11. Mai 2015 14:23

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Verstehe ich die Aufgabe richtig?
Da bräuchtest du doch nur einmal den nächsten Termin suchen, und vorher gar nicht mehr nachschauen?

jobo 11. Mai 2015 14:25

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Zitat:

Zitat von AlexII (Beitrag 1301039)
Ok .. einen Wecker. Dieser soll nach mehreren (Hunderte, oder Tausende) Terminen "Ausschau" halten, und bei angegebener Zeit Alarm schlagen. Das heißt, dass ich jede Sekunde die aktuelle Uhrzeit mit der in der DB vergleichen muss.

Wie wäre es, in der DB die bevorstehenden Minuten sortiert abzufragen und abzuarbeiten? Sind es dann immer noch tausende oder sind es insgesamt tausende?

AlexII 11. Mai 2015 15:04

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Zitat:

Zitat von jobo (Beitrag 1301044)
Zitat:

Zitat von AlexII (Beitrag 1301039)
Ok .. einen Wecker. Dieser soll nach mehreren (Hunderte, oder Tausende) Terminen "Ausschau" halten, und bei angegebener Zeit Alarm schlagen. Das heißt, dass ich jede Sekunde die aktuelle Uhrzeit mit der in der DB vergleichen muss.

Wie wäre es, in der DB die bevorstehenden Minuten sortiert abzufragen und abzuarbeiten? Sind es dann immer noch tausende oder sind es insgesamt tausende?

Also Theoretisch können es schon hunderte oder tausende auf ein Schlag sein.

AlexII 11. Mai 2015 15:06

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Zitat:

Zitat von Zoot (Beitrag 1301043)
Verstehe ich die Aufgabe richtig?
Da bräuchtest du doch nur einmal den nächsten Termin suchen, und vorher gar nicht mehr nachschauen?

Jah.. die Termine können beliebig zerstreut sein, ich muss schon jede Sekunde nach nem Termin schauen.

AlexII 11. Mai 2015 15:07

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Zitat:

Zitat von p80286 (Beitrag 1301041)
Warum willst Du suchen?
Eine Liste mit dem kleinsten Element (das in der Zukunft liegt) als erstes Element und gut ist.

Gruß
K-H

Hm... stimmt, muss aber trotzdem oft, jede Sekunde selecten. Ist es sinnvoll die DB jede Sekunde abzufragen?

Neutral General 11. Mai 2015 15:10

AW: Wo binäre Suche schneller, mit Array oder StringList?
 
Es ist doch trotzdem am einfachsten sich von der DB eine sortierte Liste aller (bzw. der ersten N) Termine ausgeben zu lassen.
Die kannst du dann ggf. einfach in dieser Reihenfolge in eine Liste schreiben und bei jedem Tick durchläufst
du die Liste von 0 bis zum ersten Termin der noch nicht eingetreten ist, tust was du tun musst für diese Termine
und löschst die abgearbeiteten Termine aus der Liste (und der DB).

Wie schon oben angedeutet: Du musst nicht jede Sekunde die DB abfragen. Wenn du dir alle (oder zumindest nen guten Vorrat) der
nächsten Termine zurückgeben lässt brauchst du nur am Anfang 1x oder ggf. nach ein paar Minuten/Stunden wenn die Liste leer ist/wird
deine Liste mit neuen Terminen auffüllen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz