常用算法实现--python版 之二分查找

 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 # added by kangye, dependent on python27
 4 
 5 def BinarySearch(l,key):
 6     low=0
 7     high=len(l)-1
 8     i=0
 9     while(low <= high):
10         i = i+1
11         mid = low + ((high-low)>>1)
12         if(l[mid] < key):
13             low = mid + 1
14         elif (l[mid] > key):
15             high = mid -1
16         else:
17             print "use %d times" % i
18             return mid
19     return -1
20 
21 if __name__ == "__main__":
22     l=[1,4,5,6,7,8,9,44,333,2233]
23     print l
24     print BinarySearch(l,4)
25     print BinarySearch(l,44)
26     print BinarySearch(l,8)
27     print BinarySearch(l,2233)
28     print BinarySearch(l,77)

 

posted @ 2015-12-10 17:40  kangye1014  阅读(71)  评论(0编辑  收藏  举报