zoukankan      html  css  js  c++  java
  • Python实现递归二分法查找

    算法:二分法查找适用于数据量较大时,但是数据需要是有序的
    主要思想是:(设查找的数组区间为array[low, high],查找值为T)
    (1)确定该区间的中间位置K.
    (2)将查找的值T与array[K]比较. 若相等,查找成功返回True;否则将array 分为[low:mid+1] 和[mid:high].
    (3)比较T和arra[K]的大小,确定T实在左边的部分还是右边的部分递归查找.
    (4)若最终的array大小变为0,则查找结束,并且不存在T.
    时间复杂度为:O(log2n).
    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    '''
    @File        :HalfSearch.py
    @Description :
    @CreatTime   :2020/08/21 15:33:31
    @Author      :Yunhgu
    @Version     :1.0
    '''
    
    def HalfSearch(array, searchNum):
        if not array:
            return False
        mid = len(array)//2
        if array[mid] == searchNum:
            return True
        elif array[mid] < searchNum:
            return HalfSearch(array[mid+1:], searchNum)
        else:
            return HalfSearch(array[0:mid], searchNum)
    
    if __name__ == "__main__":
        int_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        h = HalfSearch(int_list, 55)
        print(h)
     
     
  • 相关阅读:
    themes、skins
    使用GreyBox实现Ajax模式窗口
    .net最小化到系统托盘
    asp.net自定义控件
    [转]SQL函数的简短说明
    prototype1.4 和1.5
    [转]Oracle PL/SQL 编程手册(SQL大全)
    更新同一张表中的数据的方法
    js中eval()的作用
    asp.net中的中文和特殊字符的处理方式!
  • 原文地址:https://www.cnblogs.com/yunhgu/p/13541645.html
Copyright © 2011-2022 走看看