介绍
这篇文章给大家介绍深入浅析python中的搜索算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>搜索算法强>
线性搜索
按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。是最简单的一种搜索算法。
<强>二分搜索算法强>
这种搜索算法每一次比较都使搜索范围缩小一半。
<>强插值搜索算法强>
是根据要查找的关键字键与顺序表中最大,最小记录的关键字比较后的查找方法,它假设输入数组是线性增加的。
<强>跳跃搜索算法强>
需要通过固定的跳跃间隔,这样它相比二分查找效率提高了很多。
<强>快速选择强>
快速选择一般是以原地算法的方式实现,除了选出第k小的元素,数据也得到了部分地排序。
<强>禁忌搜索强>
是一种现代启发式算法,一个用来跳脱局部最优解的搜索方法。
<强>线性搜索强>
def linear_search(数据): “““线性搜索“““ search_at=0 search_res=False 而search_at & lt;len(数据)和search_res是假的: 如果数据[search_at]==search_for: search_res=True 其他: search_at +=1 返回search_res lis=[5, 10, 7, 35岁,12日,26日,41) 12)打印(linear_search (lis) 6)print (linear_search (lis)
<强>插值搜索强>
def insert_search(数据): “““插值搜索“““ idx0=0 idxn=(len(数据)- 1) 而idx0 & lt;=idxn和x祝辞=数据(idx0)和x & lt;=数据(idxn): 中期=idx0 + int(((浮动(idxn - idx0)/(数据(idxn) -数据[idx0])) * (x -数据(idx0)))) 如果数据(中期)==x: 返回“在下标为“+ str(中期)+“的位置找到了“+ str (x) 如果数据(中期)& lt;x: 中期idx0=+ 1 返回“没有搜索到“+ str (x) lis)=(2、6、11、19、27日,31岁,45岁,121年) 打印(insert_search (lis)、31)) 打印(insert_search (lis), 3)
关于深入浅析python中的搜索算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。