二分查找与线性查找
程序员文章站
2022-03-14 23:48:32
...
二分查找
二分查找的前提是数列是有序的(升序或者降序),本文以下代码假设数据是按升序排序的,这是一种较为常用的查找方法。
#假设数列升序排列
def my_Binary(list,items): #items为要查找的元素
min = 0
max = len(list) - 1
while min <= max:
r = round((min + max)/2)
if list[r] > items:
max = r - 1
elif list[r] < items:
min = r + 1
else:
return r
注:round()函数是一个取整函数
线性查找
线性查找算法比较简单,即对数组元素一个一个地检查,直到找到该元素为止。
编程思路:
1)遍历数组元素,利用for循环,for i in range()
2) if语句判断list[i]是否等于要查找的元素
def my_linersearch(list,x): #x为要查找的元素
for i in range(len(arr)):
if (arr[i] == x):
return i
return -1
if my_linersearch(arr,x) == -1:
print('x不在列表中')
else:
print('x在列表中,它的下标是:', my_linersearch(arr,x))
上一篇: symfony生成数据库表实体以及迁移数据库的方法讲解
下一篇: JSP用户会话跟踪