AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign FreePascal Wo binäre Suche schneller, mit Array oder StringList?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von AlexII · begonnen am 11. Mai 2015 · letzter Beitrag vom 12. Mai 2015
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

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

  Alt 11. Mai 2015, 14:50
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!
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

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

  Alt 11. Mai 2015, 15:08
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.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 11. Mai 2015, 15:15
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?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

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

  Alt 11. Mai 2015, 15:22
Warum willst Du suchen?
Eine Liste mit dem kleinsten Element (das in der Zukunft liegt) als erstes Element und gut ist.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
113 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 11. Mai 2015, 15:23
Verstehe ich die Aufgabe richtig?
Da bräuchtest du doch nur einmal den nächsten Termin suchen, und vorher gar nicht mehr nachschauen?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

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

  Alt 11. Mai 2015, 15:25
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?
Gruß, Jo
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#7

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

  Alt 11. Mai 2015, 16:04
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.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#8

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

  Alt 11. Mai 2015, 16:06
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.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#9

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

  Alt 11. Mai 2015, 16:07
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?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

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

  Alt 11. Mai 2015, 16:10
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.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr.
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