• ベストアンサー

ソートにかかった時間を測りたい。

初心者です。クイックソートとか挿入ソートとかのかかる時間を測るためにはどうしたらいいでしょうか?かかった時間を表示させるプログラムを書くのは可能でしょうか??宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • smat7
  • ベストアンサー率46% (7/15)
回答No.3

↓私はこのような形式をよく使っています #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { clock_t start, end; start = clock(); //ここに測定したいコードを書く end = clock(); printf("%7.3f秒", (double)(end - start) / CLOCKS_PER_SEC); return EXIT_SUCCESS; }

skyskynet
質問者

お礼

とても参考になりました!ありがとうございました!

その他の回答 (3)

  • f_attck
  • ベストアンサー率33% (40/118)
回答No.4

Linuxならtimeコマンドを使うとか ソース中にgettimeofday()を埋め込んで 計測するのはどうでしょう 誤差を気にされるのでしたら、gettimeofday()を ソースに埋め込んで数万回実行後、1回あたりの 実行時間を計算すれば良いのではないでしょうか

skyskynet
質問者

お礼

とても参考になりました!ありがとうございました!

  • neuron-x
  • ベストアンサー率52% (139/266)
回答No.2

GetTickCount()という、ミリ秒単位で時間を計測できるAPIを使うと良いでしょう。(数msの誤差はありますが) GetTickCount()は、Windowsが起動してからの時間をmsで返します。なので、処理の前後でGetTickCount()を呼ぶことで、処理時間を求められます。 DWORD start = GetTickCount(); // 計測したい処理 DWORD end = GetTickCount(); DWORD cost = end-start; // 処理にかかった時間(ms)

skyskynet
質問者

お礼

とても参考になりました!ありがとうございました!

回答No.1

 開発環境がわからない為、一例をあげます。  time 関数を前後にはさんで、その差で値を計測  する。  または、unix 系であれば、gettimeofday 関数を  用いて計測する。  こういった形が一般的だと思います

skyskynet
質問者

お礼

とても参考になりました!ありがとうございました!

関連するQ&A