Social Icons

twitterfacebookgoogle plusrss feedemail

4/22/2010

資料結構-Do Not Hand-In Exercises-- Exercises:1


此為趙老師在資料結構課堂上面要我們做的第一份不用交的作業
這是我寫的程式大家可以看看
這是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 1001
void 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
看過文章之後歡迎留下您寶貴的意見喔!

 
 
无觅相关文章插件,迅速提升网站流量