python一个关于二分法查找元素的实现

Posted sssantiago

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python一个关于二分法查找元素的实现相关的知识,希望对你有一定的参考价值。

# coding=utf-8
import time


def find_ele(alist, ele):
if ele < alist[0] or ele > alist[len(alist) - 1]:
print("%d not in alist" % ele)
return
last_index = len(alist) - 1
center_index = last_index // 2
loop_flag = True
loop_cout = 0
while loop_flag:
# 使用二分法查找元素是否在有序列表内
loop_cout += 1
while alist[center_index] < ele:
loop_cout += 1
#最后一个元素获取
center_index = (center_index + last_index + 1) // 2
if center_index == last_index:
# 最后一个元素
if alist[center_index] == ele:
print("%d in alist" % ele)
else:
print("%d not in alist" % ele)
loop_flag = False
break
while alist[center_index] > ele:
loop_cout += 1
last_index = center_index
center_index = last_index // 2
if center_index == last_index:
# 最后一个元素
if alist[center_index] == ele:
print("%d in alist" % ele)
else:
print("%d not in alist" % ele)
loop_flag = False
break
if alist[center_index] == ele:
print("%d in alist" % ele)
loop_flag=False


def main():
print(time.time())
alist = list(range(100000000))
# alist.pop(98)
find_ele(alist, 100)
print (time.time())

if __name__ == "__main__":
main()

以上是关于python一个关于二分法查找元素的实现的主要内容,如果未能解决你的问题,请参考以下文章

python使用二分法实现在一个有序列表中查找指定的元素

python实现二分查找(折半查找)算法

Python 二分查找与 bisect 模块

python关于二分查找

二分法查找python的实现

python算法:二分查找