首页 > 编程语言 > 详细

python 实现二分法查找

时间:2014-06-09 23:06:31      阅读:625      评论:0      收藏:0      [点我收藏+]

二分查找图

 

bubuko.com,布布扣

二叉树:

bubuko.com,布布扣

代码

bubuko.com,布布扣
#!/usr/bin/python
#-*-coding:utf-8-*-
#----------------------------------------------------------------------------------------
# to_do  : binary find
# authors: zuoxingyu
# time   : 2014-06-07
#----------------------------------------------------------------------------------------
loop=0                                #二分次数
def binarySearch(lists,select):
        global loop
        loop=loop+1
        is_none=False
        if lists!=[]:
                cen_num=len(lists)/2     #取命中值的INDEX
                tlag=lists[cen_num]      #命中值
                lt_list=lists[0:cen_num] #取命中值左边的小数列表
                gt_list=lists[cen_num+1:]#取命中值右边的大数列表
                print tlag,lt_list,gt_list

                if tlag==select:         #命中,返回TRUE
                        is_none=True
                        return is_none
                elif select > tlag:      #查找值大于M命中值,再在右边大数列表里找
                        return binarySearch(gt_list,select)
                elif select < tlag:      #查找值小于命中值,再在左边小数列表里找
                        return binarySearch(lt_list,select)

        return is_none

binarySearch([1,2,3,4,15,26,37,48,59],26)
print loop:,loop
bubuko.com,布布扣

执行效果:

bubuko.com,布布扣
[root@meizuDB MEIZUdb]# python binary_search.py 
15 [1, 2, 3, 4] [26, 37, 48, 59]
48 [26, 37] [59]
37 [26] []
26 [] []
loop: 4
bubuko.com,布布扣

 

python 实现二分法查找,布布扣,bubuko.com

python 实现二分法查找

原文:http://www.cnblogs.com/zuoxingyu/p/3775057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!