二分查找--python

来源:互联网 发布:图书借阅管理系统源码 编辑:程序博客网 时间:2024/06/11 09:55
# -*- coding:utf-8 -*-
# file:pyBinarySearch.py
#


def BinarySearch(l,key):
        low = 0
        hight = len(l) - 1
        i = 0
        while ( low <= hight ):
                i=i+1
                mid = (hight+low)//2
                if (l[mid]<key):
                        low=mid+1
                elif (l[mid]>key):
                        hight=mid-1
                else:
                        print('use %d time(s)' %i)
                        return mid
        return -1
if __name__ == '__main__':
        l=[1,5,6,9,10,51,62,65,70]
        print(BinarySearch(l,5))
        print(BinarySearch(l,10))
        print(BinarySearch(l,65))

        print(BinarySearch(l,70))


本代码取自python宝典。

运行脚本输出如下:

use 2 time(s)
1
use 1 time(s)
4
use 3 time(s)
7
use 4 time(s)
8

原创粉丝点击