python中深入浅析的搜索算法

  介绍

这篇文章给大家介绍深入浅析python中的搜索算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>搜索算法

线性搜索

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

深入浅析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中的搜索算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

python中深入浅析的搜索算法