python查找算法例题_python搜索算法原理及实例讲解

一般我们在解决问题时候,经常能碰到好几种解决方式,总归是有最优,还有最不推荐的选择的,针对搜索算法也一样,因为能实现的方式也有很多个,因此,不知道大家在什么场景里使用这些算法,反正小编都把这些算法整理出来了,供大家选择,另外针对个人理解,大家也可以参考哪个更好使用哦~

搜索算法

线性搜索

按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。是最简单的一种搜索算法。

二分搜索算法

这种搜索算法每一次比较都使搜索范围缩小一半。

插值搜索算法

是根据要查找的关键字key与顺序表中最大、最小记录的关键字比较后的查找方法,它假设输入数组是线性增加的。

跳跃搜索算法

需要通过固定的跳跃间隔,这样它相比二分查找效率提高了很多。

快速选择

快速选择一般是以原地算法的方式实现,除了选出第k小的元素,数据也得到了部分地排序。

禁忌搜索

是一种现代启发式算法,一个用来跳脱局部最优解的搜索方法。

关于算法的知识点扩展:

线性搜索

def linear_search(data, search_for):

"""线性搜索"""

search_at = 0

search_res = False

while search_at < len(data) and search_res is False:

if data[search_at] == search_for:

search_res = True

else:

search_at += 1

return search_res

lis = [5, 10, 7, 35, 12, 26, 41]

print(linear_search(lis, 12))

print(linear_search(lis, 6))

插值搜索

def insert_search(data,x):

"""插值搜索"""

idx0 = 0

idxn = (len(data) - 1)

while idx0 <= idxn and x >= data[idx0] and x <= data[idxn]:

mid = idx0 +int(((float(idxn - idx0)/(data[idxn] - data[idx0])) * (x - data[idx0])))

if data[mid] == x:

return "在下标为"+str(mid) + "的位置找到了" + str(x)

if data[mid] < x:

idx0 = mid + 1

return "没有搜索到" + str(x)

lis = [2, 6, 11, 19, 27, 31, 45, 121]

print(insert_search(lis, 31))

print(insert_search(lis, 3))

到此这篇关于python搜索算法原理及实例讲解的文章就介绍到这了,更多相关python搜索算法使用方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: python搜索算法原理及实例讲解

本文地址: http://www.cppcns.com/jiaoben/python/365129.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值