porownanie metod sortowania

0

mam za zadanie porownac rozne metody sortowania (IS, SS, BS, MS, ShS, HS, QS, CS) na roznych zestawach danych, zeby uzyskac przypadki najlepsze, sredne i najgorsze..przy implemetacji wspieram sie ksiazka Wirtha "Algorytmy+ struktury danych = programy". problemem jest natomiast porownanie tych algorytmow. najlepiej (tak mi sie wydaje) byloby skorzystac z jakies procedury mierzacej czas dzialania algorytmu - i tak np. procedure sortujaca ustawiam na OnClik na jakims buttonie, w tym samym umieszczam procedure mierzaca czas, tylko teraz jak taka procedura wyglada i jak sparawic zeby wylaczyla sie razem z koncem pracy algorytmu i wyswietlila wynik do np jakiegos edita? czy moze lepiej porownywac liczbe prownan i inwersji?

0

Liczysz ilość porównań jakie musi wykonać dane algo, im mnie tym lepiej...

0

a idzie jakos zrobic z tym pomiarem czasu? bo mam tam tez do zrobienia np wykres czasu od liczby elementow?

edit:

ok, chyba znalazlem:)
http://www.chip.pl/forum/viewtopic?tid=22107&fid=39

0

Ja to robie tak:

procedure TfmKreatorUrzadzen2.btnTestLANClick(Sender: TObject);
var
  Freq, TimeStart, TimeEnd : Int64;

begin
  if QueryPerformanceFrequency(Freq) then
{powyższa linijka pobiera częstotliwość zegara przy okazji sprawdza czy jest on w ogóle dostepny (wynik funkcji musi być=True) }
  begin
    QueryPerformanceCounter(TimeStart);

   // interesujace cie funkcje = procedura

   QueryPerformanceCounter(TimeEnd);

   ShowMessage('Test połączenia wykonany poprawnie.' +#13+#10+ 'Czas połączenia: '+
          FloatToStr((TimeEnd-TimeStart)/Freq*1000)+ ' ms');
  end;
end;
0

Tylko ważne, żeby nie mierzyć czegoś co trwa np. 10 milisekund. Jeśli algorytm jest szybki, to mierzymy np. milion iteracji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1