您的位置:首页 > 编程语言 > Python开发

Python二分查找

2016-09-18 09:35 435 查看

代码:

时间复杂度:O(log2n)

#!/usr/bin/env python
#coding:utf-8
import copy
from copy import deepcopy

'''
def erfen(x,n,l):

for i in range(n):
mid = len(l)//2
if (x == l[mid]):
print(mid)
break
elif (x < l[mid]):
for i in range(mid,n):
l.pop(l[i])
erfen(x, mid, l)
elif (x > l[mid]):
for i in range(0,mid):
l.pop(l[i])
erfen(x, mid, l)

else:
for i in ll:
if (l[mid+1] == ll[i]):
aa = (-1)-(mid+1)
print(aa)
break

if __name__=="__main__":
x = int(input())
n = int(input())
s = input().split()
l = []

for i in range(n):
l.append(int(s[i]))

global ll
ll = deepcopy(l)

for i in range(n):
if(x == ll[i]):
print(i)
else:
erfen(x, n, l)
'''

def search_erfen(x,l):
start = 0
end = len(l)

while(start<end):
mid = (start+end)//2
if (l[mid]>x):
end = mid
elif(l[mid]<x):
start = mid+1
elif(l[mid == x]):
return mid
return -1

if __name__=="__main__":
x = 5
l=[1,3,4,6,7,9]
print(search_erfen(x, l))

 

 

 

 

dd

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: