当前位置:首页 » 操作系统 » 数据结构与算法实验报告

数据结构与算法实验报告

发布时间: 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、实现不同的排序算法,例如冒泡排序、插入排序、选择排序、快速排序等,确保每个排序算法都有明确的输入和输出,根据实验要求,编写函数来生成测试数据。

热点内容
c语言写脚本案例 发布:2025-05-05 15:20:07 浏览:262
如何编译php源代码 发布:2025-05-05 15:17:00 浏览:194
安卓手机微信支付如何人脸识别 发布:2025-05-05 14:56:46 浏览:128
让其他电脑能够进入服务器 发布:2025-05-05 14:53:45 浏览:134
辉昂最低配置有哪些 发布:2025-05-05 14:52:14 浏览:793
忘记密码wifi如何连接 发布:2025-05-05 14:38:31 浏览:1001
出勤日算法 发布:2025-05-05 14:37:44 浏览:920
龙腾四海源码 发布:2025-05-05 14:35:57 浏览:795
苹果版ps密码格式是什么 发布:2025-05-05 14:17:59 浏览:433
android数据返回 发布:2025-05-05 14:05:16 浏览:957