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)
     
     
  • 相关阅读:
    HashMap的理解
    红黑树
    No constructor found matching
    会话 控制终端 setsid
    信息表示和处理 from computer system chapter 2
    tcp keepalive
    TCP 四步挥手
    CS 课程
    close vs shutdown socket
    Linux time总结
  • 原文地址:https://www.cnblogs.com/yunhgu/p/13541645.html
Copyright © 2011-2022 走看看