第9课 算法的评价方法 课件(共10张PPT)+学习单+素材 六上信息科技浙教版(2023)

资源下载
  1. 二一教育资源

第9课 算法的评价方法 课件(共10张PPT)+学习单+素材 六上信息科技浙教版(2023)

资源简介

中小学教育资源及组卷应用平台
第09课 算法的评价方法 学习单
任务一、修改上述程序,增加一个变量t来统计while语句的执行次数,并显示数值。
mb=37
qs=1
while qs<101:
if qs==mb:
print("找到的数为:",qs)
break
else:
qs=qs+1
任务二、体验算法试着完成下方表格。
算法 循环次数 效率评估
顺序查找
二分查找
任务三、想一想
在1~1000范围内查找目标数37,利用二分查找算法,循环执行的次数是多少 ( )
任务四、在1~10000范围内,分别采用顺序查找和二分查找算法查找目标数1、50、100、1000、5000,测试循环的执行次数,估算使用的时间。
目标数 查找算法 循环执行次数 查找所用时间
1 顺序
二分
50 顺序
二分
100 顺序
二分
1000 顺序
二分
5000 顺序
二分
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
HYPERLINK "http://21世纪教育网(www.21cnjy.com)
" 21世纪教育网(www.21cnjy.com)(共10张PPT)
哪条路径最优?
最优体现在
距离最短
用时最少
第9课 算法的评价方法
2023
年 级:六年级上
授课教师:XXX
讨论
解决某个问题可能会有多种不同的算法,如何评价算法的“好”与“差”呢?
评价标准:
正确性高
有效性好
执行效率快
一、算法评价的方法
当变量 qs 的值变为 37 时,语句总的执行次数约为 114 次。
你觉得这样的算法好不好?说说你的理由。
修改以下程序,增加一个变量t来统计while语句的执行次数,并显示数值。
1.参考书本P31;
2.用python打开”测试.py”;
3.完成学习单任务一。
任务一
二、算法评价体验
解决同一个问题的不同算法,在执行时算法的时间复杂度是有一定差异的。
同样是查找目标数 37,下述二分查找算法在执行时,变量 qs 的值依次取 50、25、37,也就是说,循环共执行了 3 次,与顺序查找算法相比,循环少执行34次,显然运行时间更短。
打开桌面文件名为:“顺序查找.py”和“二分法查找.py”
体验算法试着完成下方表格。
任务二
体验算法试着完成下方表格。
任务三
在1~1000范围内查找目标数37,利用二分查找算法,循环执行的次数是多少 ( )
在1~10000范围内,分别采用顺序查找和二分查找算法查找目标数1、50、100、1000、5000,测试循环的执行次数,估算使用的时间。
任务四
这节课我们学习了算法的评价方法,我们要能评价算法的好与差,会通过体验多种算法的比较,从而得出哪种算法效率更好。mb=37
qs=1
while qs<101:
if qs==mb:
print("找到的数为:",qs)
break
else:
qs=qs+1
#注意:测试时把文件的扩展名“.doc”去掉,然后用python打开即可。da = 37 #要查找的值,可以修改这个值
data_list = [i for i in range(1,101)] # 产生一个范围为1~100的有序数列
low = 0 # 设置数列的起始位置 ,Python中访问数列的起始位置从第0个开始
high = len(data_list)-1 # 设置数列的结束位置 ,Python中访问数列的结束位置为数列长度 -1
ci = 0 #用于统计执行次数的计次变量 ci
while low <= high:
ci += 1 # 执行一次循环,计次变量增加1
mid = (low + high) // 2 # 计算出中间数的位置
print(f'执行第{ci}次循环:在 {data_list[low]}~{data_list[high]}之间查找,中间值为{data_list[mid]}')
if data_list[mid] == da: # 如果中间位置上数的值等于da, 显示:在数列的第n个位置上找到目标
print(f'在数列的第{mid}个位置上找到{da}啦!')
break # 中断循环,程序结束
elif data_list[mid] > da: # 如果中间位置上的数的值大于da,说明da在中间数左边, 把查找数列的结束位置设置成中间位置-1
high = mid-1
else: # 如果中间位置上的数的值小于da,说明da在中间数右边, 把数列的起始位置设成中间位置+1
low = mid+1
else:
print(f'你要查找的{da}不在列表中。')
#注意:测试时把文件的扩展名“.docx”去掉,然后用python打开即可。da = 37 #要查找的值,可以修改这个值
ci = 0
for cai in range(1,101,1):
ci += 1 # 每执行一次,计次变量增加 1
print(f'执行第{ci}次循环') # 显示执行的次数
if cai ==da:
print(f'在第{ci}次循环中找到{da}啦!')
break
else:
print(f'{da}不在列表中。')
#注意:测试时把文件的扩展名“.docx”去掉,然后用python打开即可。

展开更多......

收起↑

资源列表