這是我寫的程式大家可以看看
這是Fundamentals Of Data Structures in c
也就是這本書的第50頁,第一章最後的習題第一題
以下為我寫的程式碼
#include <stdio.h>#include <stdlib.h>#include <time.h>#define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))void sort(int [],int );#define MAX_SIZE 1001void main(void){int i,n,step=10;int a[MAX_SIZE];double duration;
/*根據n=0,10,...,100,200,...,1000來計時*/printf(" n 重複次數 時間 \n");for(n=0;n<=1000;n+=step){/*根據n值大小得到時間*/long repetitions=0;clock_t start=clock();do{repetitions++;
/*初始最差情況資料*/for(i=0;i<n;i++)a[i]=n-1;sort(a,n);}while(clock()-start<1000);//重複此迴圈直到已用掉足夠時間duration=((double)(clock()-start))/CLOCKS_PER_SEC;duration/=repetitions;printf("%6d %9d %f\n",n,repetitions,duration);if(n==100)step=100;}system("pause");}void sort(int list[],int n){int i,j,min,temp;for(i=0;i<n-1;i++){min=i;for(j=i+1;j<n;j++)if(list[j]<list[min])min=j;SWAP(list[i],list[min],temp);}}
如有錯誤請留言跟我說
請遵守CC授權,並部分轉載。
沒有留言:
張貼留言
俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!