當前位置:首頁 » 操作系統 » 數據結構與演算法實驗報告

數據結構與演算法實驗報告

發布時間: 2025-05-05 10:27:18

1. 鏁版嵁緇撴瀯璇劇▼璁捐$患鍚堟帓搴忎唬鐮佸強瀹為獙鎶ュ憡涔︺

#include<stdio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 200
double maopao(int B[],int M)//鍐掓場鎺掑簭
{
clock_t start, finish;
double time; // 嫻嬮噺涓涓浜嬩歡鎸佺畫鐨勬椂闂
start = clock();
FILE *fp1;
int i,j,t;
for(i=0;i<M-1;i++)//鎺掑簭
for(j=0;j<M-i-1;j++)
if(B[j]>B[j+1])
{
t=B[j];B[j]=B[j+1];B[j+1]=t;
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp1=fopen("a","wb");
printf("緇忔帓搴忓悗搴忓垪涓:\n");
for(i=0;i<M;i++)//杈撳嚭鎺掑簭鍚庣粨鏋
{
if(i%10==0)printf("\n");
printf("%d ",B[i]);
fwrite(&B[i],sizeof(int),1,fp1);//鎶婃暟鎹浠ヤ簩榪涘埗褰㈠紡瀛樺叆紓佺洏鏂囦歡
}fclose(fp1);
printf("\n");
printf( "鍐掓場鎺掑簭娉曡繍琛屾椂闂達細" );
printf( "%f seconds\n", time );
return time;
}
double charru(int A[], int len)//鎻掑叆鎺掑簭
{
clock_t start, finish;
double time; // 嫻嬮噺涓涓浜嬩歡鎸佺畫鐨勬椂闂
start = clock();
FILE *fp2;
int i,j,high,low,mid,temp;
for(i=1;i<len;i++)
{
temp=A[i];
low=0;high=i-1;
while(low<=high)
{
mid=(low+high)/2;
if(A[0]>temp)
high=mid-1;
else low=mid+1;
}
for(j=i-1;j>high;j--)
A[j+1]=A[j];
A[high+1]=temp;
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp2=fopen("b","wb");
printf("緇忔帓搴忓悗搴忓垪涓:\n");
for(i=0;i<len;i++)
{
if(i%10==0)printf("\n");
printf("%d ",A[i]);
fwrite(&A[i],sizeof(int),1,fp2);
}fclose(fp2);
printf("\n");
printf( "鎻掑叆鎺掑簭娉曡繍琛屾椂闂達細" );
printf( "%f seconds\n", time );
return time;
}
double xuanze(int arry[],int n)//閫夋嫨鎺掑簭
{
clock_t start, finish;
double time; //嫻嬮噺涓涓浜嬩歡鎸佺畫鐨勬椂闂
start = clock();
FILE *fp3;
int i,j,k,t;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(arry[j]<arry[k])
k=j;
t=arry[k];
arry[k]=arry[i];
arry[i]=t;
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp3=fopen("c","wb");
printf("緇忔帓搴忓悗搴忓垪涓:\n");
for(i=0;i<n;i++)
{
if(i%10==0)printf("\n");
printf("%d ",arry[i]);
fwrite(&arry[i],sizeof(int),1,fp3);
} fclose(fp3);
printf("\n");
printf( "閫夋嫨鎺掑簭娉曡繍琛屾椂闂達細" );
printf( "%f seconds\n", time );
return time;
}
int kuaisu(int*c,int low,int high)//蹇閫熸帓搴忕『瀹氭灑杞翠綅緗
{
int temp,t;
temp=c[low];
while(low<high)
{
while(low<high&&c[high]>=temp)high--;
{
t=c[low];c[low]=c[high];c[high]=t;
}
while(low<high&&c[low]<=temp)low++;
{
t=c[low];c[low]=c[high];c[high]=t;
}
}
return low;
}
void kuaisu1(int *b,int low,int high)//蹇閫熸帓搴
{
int t;
if(low<high)
{
t=kuaisu(b,low,high);
kuaisu1(b,low,t-1);
kuaisu1(b,t+1,high);
}

}
double xier(int *x, int n)//甯屽皵鎺掑簭
{
clock_t start, finish;
double time; /* 嫻嬮噺涓涓浜嬩歡鎸佺畫鐨勬椂闂*/
start = clock();
FILE *fp5;
int h, j, k, t,i;
for(h=n/2; h>0; h=h/2)
{
for (j=h; j<n; j++)
{
t = *(x+j);
for(k=j-h; (k>=0 && t<*(x+k)); k-=h)
{
*(x+k+h) = *(x+k);
}
*(x+k+h) = t;
}
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp5=fopen("e","wb");
printf("緇忔帓搴忓悗搴忓垪涓:\n");
for(i=0;i<n;i++)
{
if(i%10==0)
printf("\n");
printf("%d ",x[i]);
fwrite(&x[i],sizeof(int),1,fp5);
}fclose(fp5);
printf("\n");
printf( "甯屽皵鎺掑簭娉曡繍琛屾椂闂達細" );
printf( "%f seconds\n", time );
return time;
}
void main(void)
{
FILE *fp4;
int i,a[N];
double min,b[5];
char ch,ch1;
for(i=0;i<30;i++)
printf("*");
printf("嬈㈣繋榪涘叆緇煎悎鎺掑簭緋葷粺");
for(i=0;i<30;i++)
printf("*");
printf("\n");
srand((unsigned)time(NULL));//鑾峰彇闅忔満鏁
printf("鑾峰緱%d涓闅忔満鏁:\n",N);
for(i=0;i<N;i++)
a[i]=(rand()%12767+20000)%32767;
for(i=0;i<N;i++)//杈撳嚭闅忔満鏁
{
if(i%10==0)printf("\n");
printf("%d ",a[i]);
}
printf("\n");

do
{
for(i=0;i<80;i++)
printf("=");
printf("\t1.鍐掓場鎺掑簭\n");
printf("\t2.閫夋嫨鎺掑簭\n");
printf("\t3.鎻掑叆鎺掑簭\n");
printf("\t4.蹇閫熸帓搴\n");
printf("\t5.甯屽皵鎺掑簭\n");
printf("\t6.鏂規硶姣旇緝\n");
printf("\t7.閫鍑\n");
printf("\t璇烽夋嫨鎺掑簭鏂規硶:\n");
do
{
ch=getchar();
}while(ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5'&&ch!='6'&&ch!='7');
switch(ch)
{
case'1': b[0]=maopao(a,N);break;
case'2': b[1]=xuanze(a,N);break;
case'3': b[2]=charru(a,N);break;
case'4':
clock_t start, finish; //嫻嬮噺涓涓浜嬩歡鎸佺畫鐨勬椂闂
double time;
start = clock();
kuaisu1(a,0,N-1);
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp4=fopen("d","wb");
printf("緇忔帓搴忓悗搴忓垪涓:\n");
for(i=0;i<N;i++)
{
if(i%10==0)printf("\n");
printf("%d ",a[i]);
fwrite(&a[i],sizeof(int),1,fp4);
}fclose(fp4);
printf("\n");
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
b[3]=time;
printf( "蹇閫熸帓搴忔硶榪愯屾椂闂達細" );
printf( "%f seconds\n", time ); break;
case'5': b[4]=xier(a,N);break;
case'6': min=b[0];
for(i=0;i<5;i++)
{
if(min>b[i])
min=b[i];
}
ch1='a';
i=0;
while(i<5)
{

if(min>=b[i])
switch(ch1)
{
case 'a':printf("杈冨ソ鐨勭畻娉曟槸鍐掓場鎺掑簭\n");break;
case 'b':printf("杈冨ソ鐨勭畻娉曟槸閫夋嫨鎺掑簭\n");break;
case 'c':printf("杈冨ソ鐨勭畻娉曟槸鎻掑叆鎺掑簭\n");break;
case 'd':printf("杈冨ソ鐨勭畻娉曟槸蹇閫熸帓搴\n");break;
case 'e':printf("杈冨ソ鐨勭畻娉曟槸甯屽皵鎺掑簭\n");break;
}
ch1++;i++;
}break;
case'7': {
printf("\n");
for(i=0;i<37;i++)
printf("*");
printf("璋㈣阿 !");
for(i=0;i<37;i++)
printf("*");
exit(0);
}
default:exit(1);
}
}while(1);
}

2. 數據結構排序實驗報告代碼怎麼寫

引入必要的庫和模塊,定義排序演算法、測試數據生成、性能評估函數,實現實驗邏輯、輸出實驗結果。
1、根據實驗要求,引入排序演算法的實現代碼或者用於生成測試數據的庫。
2、實現不同的排序演算法,例如冒泡排序、插入排序、選擇排序、快速排序等,確保每個排序演算法都有明確的輸入和輸出,根據實驗要求,編寫函數來生成測試數據。

熱點內容
忘記密碼wifi如何連接 發布:2025-05-05 14:38:31 瀏覽:1000
出勤日演算法 發布:2025-05-05 14:37:44 瀏覽:919
龍騰四海源碼 發布:2025-05-05 14:35:57 瀏覽:794
蘋果版ps密碼格式是什麼 發布:2025-05-05 14:17:59 瀏覽:433
android數據返回 發布:2025-05-05 14:05:16 瀏覽:957
開少兒編程 發布:2025-05-05 14:05:14 瀏覽:160
廣東雲伺服器存儲雲主機 發布:2025-05-05 13:54:22 瀏覽:328
匹配演算法比較 發布:2025-05-05 13:29:29 瀏覽:854
國際頂級域名資料庫 發布:2025-05-05 13:25:04 瀏覽:709
linux埠映射命令 發布:2025-05-05 13:25:00 瀏覽:381