1.什么是二分查找
数据的查找在计算机的操作中非常常见,那么我们应该怎样在计算机中实现查找操作呢?
最简单的一种方法:“傻找”,也就是一个一个的找,我们把数组中的每个元素都和我们想要查找的目标元素进行比对,看一下列表中是否有和这个元素相同的元素,如果我们想要寻找的那个目标元素在列表中出现了,那么就宣告查找成功,这种算法写成代码是这个样子的:
#假设我们想要在0-100之间来寻找某个元素
item = int(input("请输入你想查找的元素: ")) #输入的元素默认格式为str类型,要先转成int类型
item_index = 0 # 目标元素在数组中的位置
temp = -1
for i in range(100):
if i == item:
item_index = i + 1
temp = 1
break
else:
temp = -1
if temp == 1:
print("数组中有你想要找的元素,它的位置在:{}".format(item_index))
else:
print("数组中没有你想要找的元素!")
这就是简单查找,我们这里用的是一个有序列表,在实际情况中,我们更多碰到是无序列表(当然我们也可以先用排序算法先排好序,再进行查找),但无论有序还是无序的列表,这种算法的时间复杂度都为O(n),即我们每次寻找目标元素都要进行遍历(一个一个地找),当数据量非常庞大的