AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

QuickSort zu schnell für GetTickCount?

Ein Thema von Forlan · begonnen am 25. Nov 2008 · letzter Beitrag vom 25. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#1

QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:36
Hallo zusammen...

Kann es sein das QuickSort so schnell ist das GetTickCount die geschwindigkeit nicht mehr berechnen kann?
Hier mal der Quellcode dazu...

Delphi-Quellcode:
procedure THauptprogramm.bQuickSortClick(Sender: TObject);
var i,start,stop,Ausgabe : integer;
begin
  start := GetTickCount;
    QuickSort(Feld,Low(Feld),High(Feld));
  stop := GetTickCount;
  Ausgabe := Stop-Start;

  for i := low(Feld) to high(Feld) do
    begin
      sgToSort.Cells[i,0] := IntToStr(Feld[i]);
    end;

  if cbBerechnung.Checked = True
  then MessageDlg('QuickSort benötigte: '+IntToStr(Ausgabe)+'ms',mtInformation,[mbOk],0)
  else MessageDlg('Es wurde sortiert!',mtInformation,[mbOk],0);
end;
Als Ergebnis kommt immer 0 raus...
Gibt es eine bessere Möglichkeit sowas zu berechnen als mit GetTickCount???
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:39
Jepp, genauer als GetTickCount ist QueryPerformanceCounter(). Such mal hier im Forum oder alternativ im Msdn danach.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#3

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:43
Zitat von Fussball-Robby:
Jepp, genauer als GetTickCount ist QueryPerformanceCounter(). Such mal hier im Forum oder alternativ im Msdn danach.
Ok, und wie benutzt man QueryPerformanceCounter()? Es ist klar das nach einem Int64 die Suche ist, aber welche Variable muss ich dort einsetzen?
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:49
Schau Dir doch das Beispiel mal an, ist zwar VB.NET, aber das dürfte ja kein großes Hindernis sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:49
Delphi-Quellcode:
var
  Start, Ende: Int64;
begin
  QueryPerformanceCounter(Start);
  Funktion();
  QueryPerformanceCounter(Ende);
  ShowMessage(IntToStr(Ende - Start));
end;
Übrigens: Wenn du unbedingt die benötigte Zeit (also zum Beispiel Millisekunden) ermitteln willst, musst du noch mit QueryPerformanceFrequency arbeiten, denn diese Frequenz hängt vom Prozessor ab und ist von daher nicht an jedem PC gleich (hoffentlich hab ich da jetzt nichts falsches gesagt, weiß es nicht mehr ganz genau )
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#6

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:50
Zitat von DeddyH:
Schau Dir doch das Beispiel mal an, ist zwar VB.NET, aber das dürfte ja kein großes Hindernis sein.
Alles klar, danke für den Link...
Nun funktioniert es auch

Danke für die schnellen Antworten
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#7

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:54
Eine Frage dazu noch...

Welche Einheit gibt QueryPerformanceCounter() denn zurück?

Also bei mir kam dann als Ergebnis 24 raus...
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 15:57
Den Post von Robby hast Du gelesen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#9

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 16:00
Zitat von DeddyH:
Den Post von Robby hast Du gelesen?
Pardon, nein den hab ich übersehen...

Ok, DANKE!^^
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#10

Re: QuickSort zu schnell für GetTickCount?

  Alt 25. Nov 2008, 16:08
Irgendetwas scheint aber immernoch nicht zu stimmen....
Ist denn jetzt noch was falsch???

Delphi-Quellcode:
procedure THauptprogramm.bQuickSortClick(Sender: TObject);
var i : integer;
    start,stop,Ausgabe : Int64;
begin
  QueryPerformanceCounter(Start); {GetTickCount ist nicht möglich, da QuickSort zu schnell ist}
    QuickSort(Feld,Low(Feld),High(Feld));
  QueryPerformanceCounter(Stop);
  Ausgabe := (Stop-Start);
  QueryPerformanceFrequency(Ausgabe);

  for i := low(Feld) to high(Feld) do
    begin
      sgToSort.Cells[i,0] := IntToStr(Feld[i]);
    end;

  if cbBerechnung.Checked = True
  then MessageDlg('QuickSort benötigte: '+IntToStr(Ausgabe)+' Sekunden',mtInformation,[mbOk],0)
  else MessageDlg('Es wurde sortiert!',mtInformation,[mbOk],0);
end;
Ausgabe hat nun etwa den Wert 3973945 Sekunden bei mir
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:39 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