前提・実現したいこと
選択ソートの処理時間(計算時間)を計測し、実験するというものです。計測には、#include <time.h>を用いて計測します。
発生している問題・エラーメッセージ
先生から、「ソート処理の部分のみ」を計測してほしい、end = clock();の位置が間違っている。並べ替えの処理部分のみを計測してください。とのことでした。 start = clock();の位置は指摘されていないので間違っていないと思います。
該当のソースコード
#include<stdlib.h> #include <time.h> #define SIZE 100000 void output( int data[], int size ) { int i; for( i = 0; i < size ; i++ ) { printf("%d, ", data[i]); } printf("\n"); } int main (void) { int data[SIZE]; int size = SIZE; int seed; printf("Seed?="); scanf("%d", &seed); srand(seed); int i,j; int n; for( i = 0; i < size ; i++ ){ data[i] = rand()%100+1; } unsigned long int start; unsigned long int end; unsigned long int elapsed; output( data, size ); int i,j; int min; int k,n; start = clock(); for(i=0; i<size-1; i++) { min = data[i]; k = i; for(j =i+1; j < size ; j++) { if(min > data[j]){ min = data[j]; k = j; } } n = data[i] ; data[i] = data[k]; data[k] = n; end = clock(); elapsed = end - start; } output( data, size ); /*計測結果の出力*/ printf("START TIME:%lu\n",start); printf("END TIME:%lu\n",end); printf("ELAPSED TIME:%lu\n",elapsed); return 0; }
試したこと
アルゴリズムをみてこのようにしてみたのですが、ダメみたいでした。自分でも、end = clock(); の前で入れ替えているのでここだと思っていたのですが、、、、
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。