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

python-二分法

时间:2017-01-11 14:05:03      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:else   size   mil   16px   大数   return   pre   lis   print   

二分法适用于对大数据进行查找
例如:

def find(list1,finded):
middle=int(len(list1)/2)
if len(list1)>=1:
if finded>list1[middle]:
list1[middle:]
print(list1[middle:])
find(list1[middle:],finded)
if finded<list1[middle]:
list1[:middle]
print(list1[:middle])
find(list1[:middle], finded)
if finded==list1[middle]:
print(list1[middle])
else:
print(‘未找到!‘)
return
if __name__==‘__main__‘:
a=list(range(1,600,3))
find(a,400)

结果:

[301, 304, 307, 310, 313, 316, 319, 322, 325, 328, 331, 334, 337, 340, 343, 346, 349, 352, 355, 358, 361, 364, 367, 370, 373, 376, 379, 382, 385, 388, 391, 394, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 430, 433, 436, 439, 442, 445, 448, 451, 454, 457, 460, 463, 466, 469, 472, 475, 478, 481, 484, 487, 490, 493, 496, 499, 502, 505, 508, 511, 514, 517, 520, 523, 526, 529, 532, 535, 538, 541, 544, 547, 550, 553, 556, 559, 562, 565, 568, 571, 574, 577, 580, 583, 586, 589, 592, 595, 598]
[301, 304, 307, 310, 313, 316, 319, 322, 325, 328, 331, 334, 337, 340, 343, 346, 349, 352, 355, 358, 361, 364, 367, 370, 373, 376, 379, 382, 385, 388, 391, 394, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 430, 433, 436, 439, 442, 445, 448]
[376, 379, 382, 385, 388, 391, 394, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 430, 433, 436, 439, 442, 445, 448]
[376, 379, 382, 385, 388, 391, 394, 397, 400, 403, 406, 409]
[394, 397, 400, 403, 406, 409]
[394, 397, 400]
[397, 400]
400

 

python-二分法

标签:else   size   mil   16px   大数   return   pre   lis   print   

原文地址:http://www.cnblogs.com/zhangyuxin/p/6273331.html

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