ソートの時間計算について
ソートの時間計測について以下のようなプログラムを作成したのですが、ソートはうまく動きますが何度試しても処理時間が0.00000秒となってしまいます。どのように改良すればこのような問題を解決できるのでしょうか。ご回答よろしくお願いいたします。
#include <stdio.h>
#include <time.h>
#define SIZE 100
void swap(int data[], int s, int t){
int tmp = data[s];
data[s] = data[t];
data[t] = tmp;
}
void Bsort(int data[], int size) {
int i, j;
for(i=1; i<size; i++){
for(j=(size-1); j>0; j--){
if(data[j] < data[j-1]){
swap(data, j, j-1);
}
}
}
}
void Ssort(int data[], int size){
int i, j, k, tmp;
for(i=1; i<size; i++){
k = data[i-1];
for(j=i; j<size; j++){
if(k>data[j]){
tmp = k;
k = data[j];
data[j] = tmp;
}
}
tmp = k;
k = data[i-1];
data[i-1] = tmp;
}
}
void printArray(int ar[], int size) {
int i;
for (i = 0; i < size; i++)
printf("%4d", ar[i]);
printf("\n");
}
int main(void)
{
int i, x;
int data[SIZE]= {412, 54, 595, 329, 24, 488, 313, 272, 129, 210,
670, 516, 342, 541, 491, 640, 167, 117, 726, 206,
474, 762, 153, 292, 1000, 607, 151, 661, 93, 270,
737, 531, 641, 548, 299, 287, 547, 394, 550, 475,
443, 261, 707, 503, 403, 739, 226, 646, 778, 588,
427, 169, 477, 572, 413, 300, 88, 321, 55, 779,
542, 680, 211, 273, 288, 276, 405, 307, 424, 668,
756, 255, 190, 449, 35, 435, 91, 486, 58, 408,
4, 63, 534, 330, 701, 65, 256, 311, 586, 404,
459, 254, 291, 333, 42, 343, 418, 512, 164, 56};
clock_t t1,t2;
printf("番号を入力してください。\n1,Bubble Sort\n2,Selection Sort\n");
scanf("%d", &x);
switch(x){
case 1:
printf("before:");
printArray(data, SIZE);
t1 = clock();
Bsort(data, SIZE);
t2 = clock();
printf(" after:");
printArray(data, SIZE);
printf("処理時間:%f[ms]¥n", (double)(t2 - t1) / CLOCKS_PER_SEC);
break;
case 2:
printf("before:");
printArray(data, SIZE);
t1 = clock();
Ssort(data, SIZE);
t2 = clock();
printf(" after:");
printArray(data, SIZE);
printf("処理時間:%f[ms]¥n", (double)(t2 - t1) / CLOCKS_PER_SEC);
break;
}
return 0;
}
補足
説明不足ですみませんm(_ _)m 表示はシリアル通信の先です。 TeraTermで表示させようとしています。 CPUはHD64F3068Fです。 ループで回すと・・・ 2008 March 11 Tuesday 16:40:00 2008 March 11 Tuesday 16:40:00 2008 March 11 Tuesday 16:40:00 2008 March 11 Tuesday 16:40:00 2008 March 11 Tuesday 16:40:00 をひたすら繰り返すような感じになります。