内容正文:
2026年道县优质教学资源评选活动
---高二年级选择性必修一册第五单元
项目八《模拟实现商品排序——常用排序算法及其比较》作业设计
(注:标题采用四号宋体,正文采用五号宋体,1.5 倍行距。模板可根据需求稍微调整)
课程基本信息
主备人
阳美林
课型
新授课/对比探究课
学科
信息技术
年级
高二
学段
高中
版本章节
沪科版/选择性必修一/第五单元/项目八
作业设计
课标要求
《普通高中信息技术课程标准(2017年版2020年修订)》指出:通过本模块的学习,学生应能理解算法与数据结构在解决实际问题中的应用,掌握常用排序算法的基本思想与实现方法,能根据实际问题需求选择合适的算法与数据结构。本作业旨在巩固三种基础排序算法的核心知识,培养计算思维与工程决策能力。
教材分析
本节课选自沪科版《信息技术》选择性必修一《数据与数据结构》第五单元“排序与查找”中的“项目八 模拟实现商品排序——常用排序算法及其比较”。教材以冒泡、选择、插入三种基础排序算法为切入点,引导学生通过对比探究,理解算法效率的评估方法。本作业设计围绕这一核心,从手动模拟到代码实现再到算法优化,体现分层教学理念。
学情分析
学生已掌握数组与循环等基础知识,能够编写简单的查找程序,但对“完整排序”缺乏系统认知。通过课堂“擂台赛”探究,学生已初步理解三种算法的执行过程与效率差异,但对代码实现及算法稳定性仍需巩固。本作业设置A/B/C三层,满足不同层次学生的巩固与拓展需求。
作业设计思路
本作业设计依据新课标分层教学理念,设置A层(基础巩固)、B层(进阶应用)、C层(挑战创新)三个梯度。作业内容与课堂教学紧密衔接,引导学生从“手动模拟”到“代码实现”再到“算法优化”,实现思维进阶。配套自研交互式演示网页,供学生课后验证与探究。
作业设计内容
分层作业内容
A层·基础巩固(必做)
1. 默写伪代码
请默写冒泡排序、选择排序、插入排序的标准伪代码。
算法
伪代码
冒泡排序
选择排序
插入排序
2. 手动推演
对数组 [8, 1, 5, 3, 7] 进行升序排序,完成下表:
算法
第1轮关键步骤
第2轮关键步骤
最终有序数组
冒泡排序
选择排序
插入排序
B层·进阶应用(选做)
3. 代码实战
使用Python语言完整实现冒泡排序或选择排序,并验证其正确性。
# 请在此处编写你的代码
# 测试代码
test_list = [9, 2, 6, 4, 7]
# 调用你的排序函数,打印结果
4. 深度思考
请用一个具体的数值例子,说明“选择排序”是不稳定的排序算法。
C层·挑战创新(选做)
5. 算法优化
尝试优化基础冒泡排序,实现“鸡尾酒排序”(双向冒泡)。请分析其相比基础冒泡排序的改进之处(例如,对“乌龟”问题——小数在数组末尾时移动缓慢的优化效果)。
6. 前沿探索
查阅资料深入了解“计数排序”的核心思想,思考它在什么特定数据场景下效率最高(如整数范围不大时)。
参考答案
A层参考答案
1. 默写伪代码
算法
伪代码
冒泡排序
for i=0 to n-1:
for j=0 to n-i-2:
if arr[j]>arr[j+1]:
swap(arr[j],arr[j+1])
选择排序
for i=0 to n-1:
min=i;
for j=i+1 to n-1:
if arr[j]<arr[min]:
min=j;
swap(arr[i],arr[min])
插入排序
for i=1 to n-1:
key=arr[i];
j=i-1;
while j>=0 and arr[j]>key:
arr[j+1]=arr[j];
j--;
arr[j+1]=key
2. 手动推演
算法
第1轮关键步骤
第2轮关键步骤
最终有序数组
冒泡排序
8和1换→1和5不换→5和3换→3和7不换:[1,5,3,7,8]
1和5不换→5和3换→3和7不换:[1,3,5,7,8]
[1,3,5,7,8]
选择排序
找最小值1,与8交换:[1,8,5,3,7]
在[8,5,3,7]中找最小值3,与8交换:[1,3,5,8,7]
[1,3,5,7,8]
插入排序
取1插入[8]前:[1,8,5,3,7]
取5插入[1,8]中:[1,5,8,3,7]
[1,3,5,7,8]
B层参考答案
3. 代码实战(以冒泡排序为例)
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
test_list = [9, 2, 6, 4, 7]
print(bubble_sort(test_list)) # 输出 [2, 4, 6, 7, 9]
4. 深度思考
选择排序是不稳定的。举例:初始序列 [5₁, 8, 5₂, 2](两个5用下标区分),经选择排序后变为 [2, 5₂, 5₁, 8]。两个“5”的相对顺序发生了交换,说明相同元素的原有顺序可能被改变。
C层参考思路
5. 算法优化
鸡尾酒排序(双向冒泡)每轮先从左到右将最大值浮到右端,再从右到左将最小值浮到左端。相比基础冒泡,它能有效解决较小元素在数组末尾时移动缓慢的“乌龟”问题,减少整体排序轮数。
6. 前沿探索
计数排序适用于数据范围较小且为整数的场景(如学生成绩0-100分)。它通过统计每个值出现的次数直接定位,时间复杂度可达O(n+k),但需要额外空间存储计数数组。
五、学生自评表
评价维度
⭐⭐⭐ 完全掌握
⭐⭐
基本掌握
⭐
仍需努力
我能说出三种排序算法的核心思想
我能手动模拟三种算法的排序过程
我能独立编写排序算法的Python代码
我能使用可视化工具分析算法性能
我能根据场景选择合适的排序算法
六、作业说明
1. A层作业全体同学必做,B层、C层选做。
2. 鼓励学有余力的同学挑战B层、C层作业,优秀作业将在班级展示。
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$