码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-16 22:29:17      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:main   __name__   loop   cout   获取   ast   Python一   oop   二分   

# 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一个关于二分法查找元素的实现

标签:main   __name__   loop   cout   获取   ast   Python一   oop   二分   

原文地址:https://www.cnblogs.com/sssantiago/p/9490298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!