- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
学习任务单
课程基本信息
课题
5.4.2查找算法的应用
学习目标
1.学会根据实际情境,分析问题的具体情况,提炼出对应的数据结构模型,并采用相应的算法。
2.学会合理组织数据并用查找的基本操作编程解决实际问题。
3.学会灵活应用,能够对算法模块知识进行迁移归纳,运用新功能解决实例。
课前学习任务
1.回顾冒泡排序的核心代码。
a=[57,32,46,90,68,25]
n=len(a)
foriinrange(n-1):
forjinrange(_____):#从前往后升序
ifa[j]a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
2.回顾二分查找的基本思想与方法(选修一P149二分查找)
3.回顾二分查找核心代码。
a=[25,32,46,57,68,90]
key=int(input(输入查找关键字))
i=0;j=len(a)-1
whilei=j:
m=(i+j)//2
ifa[m]==key:
____①___
break
if____②_____:
j=m-1
else:
i=m+1
ifij:
print(key,不在序列a中)
else:
print(key,在序列a的第,pos,位置上)
参考答案:
1.n-i-1
2.①pos=m②a[m]key
课上学习任务
【学习任务一】
航空公司VIP会员积分查询。不少航空公司都会提供优惠的会员服务,当某会员飞行里程累积达到一定数量后,可以使用里程积分兑换奖励机票或奖励升舱等服务。现给定某航空公司VIP会员的飞行里程、积分等信息,如下表所示,要求实现根据VIP号码快速查询会员积分的功能。请编写代码实现。
一、抽象与建模
每个会员的信息是一条记录,从众多的记录中查找到某会员的记录,然后将他的积分显示出来,所以要用________来实现。
二、数据结构
1.表格数据可以一列一列进行存储,即________,该表中有4列内容,要用4个一维数组表示,当访问到某条记录时,获取对应的数据项可以通过索引来关联。
2.表格数据的一行就是一条记录,那么可以________,用一个一维数组a来表示,那么第i行记录就可以表示为_____,对应的4列内容可以表示为a[i][0]到a[i][3]。
三、设计算法
查找可以采用顺序查找和二分查找,从算法的时间复杂度方面考虑,二分查找算法的效率______顺序查找,但用二分查找前一定要记得数据有序,即要按VIP号进行排序。
四、编写程序
请将下列代码补充完整,并上机调试实现。
#读入数据
importcsv
csvFile=open(vip.csv,r)
reader=csv.reader(csvFile)
a=[]
foriteminreader:
_______①______
csvFile.close()
#按VIP号升序排序
defbubble_sort(d):
foriinrange(1,len(d)):
forjinrange(1,len(d)-i):
if__________②_________:
d[j],d[j+1]=d[j+1],d[j]
#按VIP号二分查找
defbsearch(s,array):
i=1;j=len(array)-1
whilei=j:
m=(i+j)//2
ifint(array[m][0])==s:
returnm
if______③______:
j=m-1
else:
i=m+1
return-1#未找到返回-1
______④______
key=int(input(‘请输入要查询的VIP号:’))
_______⑤_______
ifm!=-1:
print(a[m][1],先生/女士,您的积分为:,a[m][3])
else:
print(找不到VIP号对应的用户信息!)
【学习任务二】
实例拓展:航空公司根据会员的积分推出升级服务,现要对积分在[500,800]的会员进行升级,请编程找出积分在此范围的所有会员。
设计算法:
一、采用二分查找来实现。先进行排序,排序的关键字为______。
二、解决二分查找的几个问题:
1.要进行_____次二分查找?
2.500(800)
您可能关注的文档
最近下载
- 内蒙古乌尼特矿业有限责任公司乌尼特煤矿接续生产环境影响报告书.doc
- 特种设备-维护保养记录(叉车-电动托盘堆垛车).docx
- 《多边形的内角和》 示范教学PPT课件【初中数学人教版八年级上册】.pptx
- 紧密型县域医疗卫生共同体消毒供应中心运营指南(2020年版 医联体建设).docx
- 泵站运行考试(高级)习题库(第1部分).pdf
- 挡土墙计算理正岩土(“挡土墙”文档)共21张.pptx
- XXXX生态风景区智慧景区项目施工组织方案及对策.pdf
- 陈培勋平湖秋月五线谱钢琴谱.pdf
- 可爱的中国教案第10课可爱的中国第十课同心共筑中国梦.docx
- 2024《S市乡镇幼儿教师职业幸福感问卷调研分析报告》9700字.docx VIP
文档评论(0)