数据结构与算法-查找算法

Posted yanjy-onlyone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法-查找算法相关的知识,希望对你有一定的参考价值。

第二章 查找和排序算法
课时1:列表查找
1、列表查找的含义:从对象中查找某一个特定的元素
2、列表查找的方式包含两种:顺序查找和二分查找
3、顺序查找算法:从开始一直搜索到最后一个元素进行查找,for循环,时间复杂度为O(n);
4、二分查找针对有效的列表直接进行首尾二分查找,不断使得候选区减半,所以其时间复杂度为O(logn)
4、二分查找只针对排序有序的列表查找有效高速,顺序查找针对任何列表;
5、由于二分查找算法一般都需要进行排序,而排序算法的时间复杂度一般大于O(n),高于顺序查找;所以在内置的函数index中采用的依旧是顺序查表;
技术图片

 

 

 

 技术图片

技术图片

 

技术图片

#导入函数运行时间测试函数
from cal_time import *
#查找算法
#顺序查找/线性查找算法的含义
@cal_time
def linear_search(l,v):
for i in range(len(l)):
if l[i]==v:
return i

#二分查找算法(有序的排列列表之下使用二分法)
@cal_time
def binary_search(l,v):
left=0
right=len(l)-1
while(left<right):
mid = (left + right) // 2
if l[mid]==v:
return mid
elif l[mid]<v:
left=mid+1
else:
right=mid-1

l=list(range(10000))
v=3890
binary_search(l,v)
linear_search(l,v)

技术图片

以上是关于数据结构与算法-查找算法的主要内容,如果未能解决你的问题,请参考以下文章

经典数据结构与算法--查找与排序

数据结构与算法—查找(树表的查找)

数据结构与算法——查找算法-插值查找

数据结构与算法学习笔记 查找

数据结构与算法学习笔记 查找

C言语二分查找(折半查找)算法及代码