[项目014] 排序的综合应用 显示答案 | 返回首页

作者:欧新宇(Xinyu OU)
当前版本:Release v1.0
开发平台:gcc 13.1.0, g++ 13.1.0, gdb 13.2
运行环境:Intel Core i7-13700KF CPU 3.4GHz, 32GB RAM
本教案所涉及的数据及代码仅用于教学和交流使用,请勿用作商用。

最后更新:2023年12月24日


作业要求:将【课后作业】的题目及程序代码整理成实验报告,并以PDF格式,或直接拍照上传到【雨课堂】(不要使用word文档进行上传)。

【课后作业】

1. 设待排序的关键字序列为 {12, 2, 16, 30, 28, 10, 16*, 20, 6, 18},试分别写出使用以下排序方法对关键字进行从小到大排序的过程,每趟排序结束后关键字序列的状态。(1)直接插入排序;(2)折半插入排序;(3)希尔排序(增量选取5、3、1);(4)冒泡排序;(5)快速排序;(6)简单选择排序;(7)堆排序;(8)二路归并排序。

【拓展练习】

1. 给出关键字序列 {4, 5, 1, 2, 6, 3} 的直接插入排序过程。

2. 给出关键字序列 {50, 26, 38, 80, 70, 90, 8, 30, 40, 20} 的希尔排序过程(取增量序列为 d = {5, 3, 1},排序结果为从小到大排列)。

3. 已知序列 {503, 87, 512, 61, 908, 170, 897, 275, 653, 462},采用2路归并排序法对该序列做升序排序时需要几趟排序?给出每一趟的结果。

4. 设待排序的排序码序列为 {12, 2, 16, 30, 28, 10, 16*, 20, 6, 18},试写出使用基数排序方法每趟排序后的结果,并说明做了多少次排序码比较。

[项目014] 排序的综合应用 显示答案 | 返回首页