单元实验二.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单元实验二.ppt

基本要求 1. 用随机函数产生1000个(或更多)整数,保存在文件(intfile.dat)中,然后将文件的前300个整数读入数组A,接下来的400个整数读入数组B,最后的300个整数读入数组C,用简单排序算法中的冒泡法对数组A、简单选择排序方法对数组B和直接插入排序方法对数组C中的元素分别排序; 输出排序结果、排序过程中元素的比较和交换(移动)次数、排序算法消耗的时间; 基本要求 2.将问题1中所有1000个(或更多)整数读入数组A,用快速排序算法对数组A中的元素排序,输出排序结果、排序过程中元素的比较和交换(移动)次数、排序算法消耗的时间; 3. 利用上面实现的任意一种排序算法,对实验题目一所产生的学生信息文件studinfo.dat,读取其中的所有学生信息: (1)按学号排序输出学生信息; (2)按姓名排序输出学生信息; (3)按三门课程的平均分从高到低排序输出学生信息(除了学生基本信息外,还要输出每个学生的平均成绩),最后再加一行输出信息:每门课程的平均成绩。 选作要求 用随机函数产生至少10000个整数,保存在文件(intfile.dat)中 (1)通过建立大顶(根)堆实现堆排序,最后输出排序结果; (2)通过建立小顶(根)堆实现堆排序,每找出一个小元素就输出它,从小到大输出排序结果。 选作要求 用随机函数产生至少10000个整数,保存在文件(intfile.dat)中,对其中的数据进行归并排序,最后将排序结果写入文件; 产生两个已经排序的整数数据文件,将两个文件的数据归并成一个有序序列存入文件保存。 随机数 随机函数rand() #include stdlib.h RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767 产生[0,RAND_MAX] 之间的随机数 magic = rand(); 产生[0,b-1] 之间的随机数 magic = rand()%b; 产生[a,a+b-1] 之间的随机数 magic = rand()%b + a; 随机数 随机函数srand 为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的 “随机化” 通过键入随机数种子,产生[0,100]之间的随机数 scanf(%u, seed); srand(seed); magic = rand() % 100 + 1; 使用计算机读取其时钟值并把该值自动设置为随机数种子,产生[0,100]之间的随机数 函数time()返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子 #include time.h srand((unsigned)time(NULL)); magic = rand() % 100 + 1; 堆排序算法(续) typedef SqList HeapType; //堆采用顺序存储结构 void HeapSort ( HeapType H) { //对顺序表H进行堆排序 for ( i = H. length/2; i 0; --i) // 把H建成大顶堆 HeapAdjust ( H, i, H. length); for ( i = H. length; i 1; --i) { H.r[1] ←→H.r[i]; //堆顶记录和当前未排子序列中最后一个记录相交换 HeapAdjust (H, 1, i - 1); //将H. r[l .. i - 1] 重新调整为大顶堆 } }// HeapSort for ( i = H. length; i 1; --i) { H.r[1]←→H.r[i]; //堆顶记录和当前未排子序列中最后一个记录相交换 // 三次移动元素 HeapAdjust (H, 1, i - 1); //将H. r[l .. i - 1] 重新调整为大/小顶堆 } 示例 将H建成大/小顶堆 for ( i = H. length/2; i 0; --i) // 把H建成大/小顶堆 HeapAdjust ( H, i, H. length); 12 36 85 47 24 30 53 91 91 36 85 47 24 30 53 12 47 36 91 12 53 30 24 85 堆排序算法(筛选算法) typedef SqList HeapType; //堆采用顺序存储结构 void HeapAdjust (HeapType H, in

文档评论(0)

000 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档