第14章 算法(查找算法)知识点梳理—2024届高考信息技术二轮复习知识点梳理

2024-01-23
| 10页
| 288人阅读
| 5人下载
精品

资源信息

学段 高中
学科 信息技术
教材版本 -
年级 -
章节 -
类型 学案-知识清单
知识点 -
使用场景 高考复习-二轮专题
学年 2024-2025
地区(省份) 浙江省
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 180 KB
发布时间 2024-01-23
更新时间 2024-01-23
作者 陶小波
品牌系列 -
审核时间 2024-01-23
下载链接 https://m.zxxk.com/soft/43051688.html
价格 6.00储值(1储值=1元)
来源 学科网

内容正文:

第十四章 算法(查找算法) 1.顺序查找最后一个 对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。 例如有20个数 最优的情况是第一个就找到了 即查找一次 最坏的情况 最后一个才找到 即找了 20次 ,下面代码就是标准的顺序查找算法功能是找到的是最后一个等于Key的位置,并用变量k记录。用flag表示是否查找到过该数 import random n=20 #待查找的数的总数 key=random.randint(1,50) #生成待查找的数key ls=[random.randint(1,50) for i in range(n)] flag=False#是否查找到key‘’ k=-1 #记录位置 for i in range(len(ls)): if ls[i]==key: flag=True k=i if flag: print("查找到key的位置在",k) else: print("查无此数") 2.顺序查找第一个 在顺序查找中,还有一个比较特殊的存在,即查找第一个,例如有列表[1,2,2,2] 需要通过顺序查找法,查找到第一个2,那么就需要在代码中控制,当第一次出现2时,就立马break出当前循环,代码如下 import random n=20 #待查找的数的总数 key=random.randint(1,50) #生成待查找的数key ls=[random.randint(1,50) for i in range(n)] flag=False#是否查找到key for i in range(len(ls)): if ls[i]==key: flag=True break if flag: print("查找到key的位置在",i) else: print("查无此数") 3.对分查找 对分查找首先将查找键与有序数组内处于中间位置的元素进行比较,如果中间位置上的元素内的数值与查找键不同,根据数组元素的有序性,就可确定应该在数组的前半部分还是后半部分继续进行查找;在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。 对分查找有如下性质: 1. 对分查找法要求待查找的数组值是有序等。 2. 对分查找法最多比较次数为 3. 对分查找法平均比较次数为 3.1标准对分代码写法 import random n=10#数的总数 ls=[random.randint(20,40) for i in range(n)]#生成随机数 ls.sort() #对数组进行升序排序 key=33 #待查找的数(例如查找33) i,j,m,flag=0,n-1,0,False #i:起始位置游标,j:终止位置游标,m:当前对分到的位置,flag:是否查找到该值 while i<=j and flag==False: m=(i+j)//2 if ls[m]==key: flag=True break elif ls[m]>key: j=m-1 else: i=m+1 if flag: print("查找到该值,位置为",m) else: print("查无此数") 例如:有数组长度为10的列表 其中值分别为 21, 25, 26, 29, 31, 33, 35, 37, 38, 39 通过对分查找算法查找33,对应的i,j,m,flag的变化如表1.1所示 初值 第一次 第二次 第三次 m=0 m=4 m=7 m=5 i=0 i=5 i=5 i=5 j=9 j=9 j=6 j=6 flag=false flag=false flag=false flag=true:循环退出 表1.1 当然,对分查找法与数据结构中的二叉树思想一致,所以我们也可以用二叉树来表示对分查找算法的对分过程。如下图 图1.1 3.2标准对分查找变式 import random n=10#数的总数 ls=[random.randint(20,40) for i in range(n)]#生成随机数 ls.sort() #对数组进行升序排序 key=33 #待查找的数 i,j,m=0,n-1,0 #i:起始位置游标,j:终止位置游标,m:当前对分到的位置,flag:是否

资源预览图

第14章 算法(查找算法)知识点梳理—2024届高考信息技术二轮复习知识点梳理
1
第14章 算法(查找算法)知识点梳理—2024届高考信息技术二轮复习知识点梳理
2
第14章 算法(查找算法)知识点梳理—2024届高考信息技术二轮复习知识点梳理
3
所属专辑
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。