数据结构上机基本习题详解.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单元实验二排序算法 排序的分类 插入排序(直插排序、二分插入排序、希尔排序) 交换排序(冒泡排序、快速排序) 内部排序选择排序(简单选择排序、树型排序、堆排序) 归并排序(二路归并排序、多路归并排序) 分配排序(多关键字排序、基数排序) 排序 多路平衡归并排序 外部排序置换一选择排序 最佳归并树 直接插入排序 ■直接插入排序( Straight Insertion Sorting)的基本思 想是:n个待排序的元素由一个有序表和一个无序表组成, 开始时有序表中只包含一个元素。排序过程中,每次从 无序表中取出第一个元素,将其插入到有序表中的适当 位置,使有序表的长度不断加长,完成排序过程。 有序序列R[1-1 无序序列R[in RIil 有序序列R[1 无序序列R[i+1n 冒泡排序 ■冒泡排序( Bubble sorting)的基本思想是:将相邻位置 的关键字进行比较,若为逆序则交换之 n-i+1 无序序列R1n+1|有序序列Rni+2n 比较相邻记录,将关键字最大的记 第i趟起泡排序 录交换到ni+1的位置上 无序列Rn有序序列Rm+,n >若在一趟排序过程中没有进行过交换记录的操作,则 整个排序过程终止。时 简单选择排序 ■简单选择排序的基本思想是:第一趙在n个记录中选取最 小记录作为有序序列的第一个记录,第二趙在n-1个记录 中选取最小记录作为有序序列的第二个记录,第i趙在n i+1个记录中选取最小的记录作为有序序列多中的第i个 记录。 有序序列R11 无序序列R[in 第i趟 从中选出关键字最小的记录 简单选择排序 有序序列R[1 无序序列R[i+1n 基本要求 1.用随机函数产生1000个(或更多)整数(或浮点数),保 存在文件( intfile.dat/ readfile.dat)中,然后将文件中的所 有整数(或浮点数)读入一个数组A。 (1)用冒泡法对数组A排序 (2)用简单选择排序方法对数组A排序 (3)用直接插入排序法对数组A排序; 将上述排序算法分别用函数实现,输出每种排序过程中元素 的比较次数、交换(或移动)次数,以及排序过程所消耗的 时间(以s或ms为单位); 基本要求 2.将问题1中所有1000个(或更多)整数读入数组A,用快速 排序算法对数组A中的元素排序,输岀排序结果、排序过程 中元素的比较和交换(移动)次数、排序算法消耗的时间; 3.利用上面实现的任意一种排序算法,对实验题目一所产生的 学生信息文件 studinfo.dat,读取其中的所有学生信息 (1)按学号排序输出学生信息; (2)按姓名排序输出学生信息; (3)按三门课程的平均分从高到低排序输出学生信息(除 了学生基本信息外,还要输出每个学生的平均成绩),最后 再加一行输出信息:每门课程的平均成绩。 快速排序 ■快速排序( Quick Sorting)是迄今为止所有内排序算法中 速度最快的一种。其基本思想是:取待排序序列中的某 个元素作为基准(也成为枢轴元素,一般取第一个元 素),通过一趙排序,将待排序列划分为左右两个子序 列,左子序列元素的关键字均小于或等于基准元素的关 键字,右子序列的关键字则大于或等于基准元素的关键 字,然后分别对两个子序列继续进行排序,直至整个序 列有序。 无序的记录序列 次划分 「无序的左子序列枢轴「无序的右子序列 分别进行快速排序 快速排序中的一趟划分 123456789 493865971327495504 pivot 49 3865971327495504 pivot a[j]与 pivot比较,a[小则aj→a[i 快速排序中的一趟划分 490438659713274955 pIVo 490438659713274955 a[订]与 pivot比较, a[]大则a[订]→a[j:否则增1

文档评论(0)

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

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

1亿VIP精品文档

相关文档