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_reslis = [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搜索算法使用方法内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年)2. SpringBoot整合Redis的步骤3. Properties 持久的属性集的实例详解4. ASP.NET MVC实现本地化和全球化5. ASP.NET MVC使用jQuery ui的progressbar实现进度条6. python 网页解析器掌握第三方 lxml 扩展库与 xpath 的使用方法7. React中使用TS完成父组件调用子组件的操作方法8. Python使用xlrd实现读取合并单元格9. ASP.NET MVC实现区域或城市选择10. 基于python调用jenkins-cli实现快速发布

网公网安备