北航计软实验报告一.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航计算机软件基础实验报告 计算机软件基础上机实验报告(一) XXXXXX 班 XXX1.实验目的 掌握线性表在顺序分配下的插入与删除运算;掌握线性表的链式存储结构;掌握插入排序的方法;并掌握一种产生随机数的方法。 2.实验内容 1. 产生 1000 个 0 至 999 间的随机整数,并以产生的次序存入一个数据文件中。 2. 编制一个程序,依次实现以下功能: (1) 定义一个有序(非递减)线性表,其最大容量为 1000,初始时为空。 从由 1 产生的数据文件中依次取前 N 个随机整数,陆续插入到此线性表中,并要求在每次插入后保持线性表的有序性。最后将此有序线性表打印输出。 在由( 2)产生的线性表中,依在 1 中产生的次序逐个将元素删除,直至表空为止。 3. 以 N=100 及 N=400 分别运行 2 的程序,并比较它们的运行时间。 4. 编写一个程序,用插入排序依次将 1 中产生的 1000 个随机整数链接成有序链表(不改变原随机数在存储空间中的顺序) 。 3.源代码与运行结果 #includestdio.h #includestdlib.h #includetime.h /** 1_1 产生 1000 个 0 至 999 间的随机整数,并以产生的次序存入一个数据文件 (1_1.txt) 中。 **/ main() { FILE *fo=fopen(1_1.txt,w); int i,j; srand((unsigned)time(0)); for (i=0;i=999;i++) fprintf(fo,%d\n,rand()%1000); fclose(fo); printf(1000 个随机数已输出至目录下 1_1.txt 文件 \n); 北航计算机软件基础实验报告 system(pause); } 输出文件 1_1.txt 如下:(因输出文本长度缘故,此处只截了一幅图) #includestdio.h #includestdlib.h #includetime.h /** 1_2 从数据文件 (1_1.txt) 中读取数据,进行插入排序,然后屏幕输出。 再依序删除。 1_3 以 N=100 及 N=400 分别运行 2 的程序,并比较它们的运行时间。 **/ #define N 1000 main() { int a[N]={0}; int i,j,m,w,num=0; FILE *fi=fopen(1_1.txt,r); clock_t start,finish; double duration; 北航计算机软件基础实验报告 //Part 1 : start=clock(); m=0; fscanf(fi,%d,num); a[0]=num; w=m; for (j=1;j=N-1;j++) { w=m; fscanf(fi,%d,num); while ((a[w]num)(w=0)) w--; w++; for(i=m;i=w;i--) a[i+1]=a[i]; a[w]=num; m++; } finish=clock(); duration=(double)(finish - start)/CLOCKS_PER_SEC; printf( 执行 %d 个数据插入操作完成!用时: %f 秒,得到线性表如下: \n,m+1,duration); for (i=0;iN;i++) printf(%d ,a[i]); fclose(fi); //Part 2 : start=clock(); for (j=0;j=N-1;j++) { w=0; fscanf(fi,%d,num); while (a[w]num) w++; for(i=m;im;i++) a[i]=a[i+1]; a[m]=0; m--; } finish=clock(); duration=(double)(finish - start)/CLOCKS_PER_SEC; printf(\n\n 删除操作完成!用时: %f 秒,得到线性表如下: \n,duration); for (i=0;iN;i++) printf(%d ,a[i]); printf(\n); 北航计算机软件基础实验报告 fclose(fi); system(pause); } 程序运行输出结果如下: (因输出文本长度缘故,此处只截了两幅图) #includestdio.h #includestdlib.h /** 北航计算机软件基础实验报告 1_4 编写一个程序,用插入排序依次将 1_1.txt 中的 1000 个随机整数链接成有序链表 (不改变原随机数在存储空间中的顺序) **/ #define N 1000 main() { stru

文档评论(0)

明若晓溪 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档