zoukankan      html  css  js  c++  java
  • day_06、递归、二分查找

    递归

    递归意味着调用自身。

    递归函数通常包括以下俩部分。

    基线条件:(针对最小的问题)满足这个条件是将直接返回一个值。

    递归条件:包含一个或多个调用,这些调用旨在解决问题的一部分。

    1 def fun(n):
    2     if n == 1:
    3         return 1
    4     else:
    5         return n * fun(n-1)
    乘阶
    1 def fun(n, x):
    2     if x == 0:
    3         return 1
    4     else:
    5         return n * fun(n, x-1)
    1 def fun(n):
    2     if n == 1:
    3         return 1
    4     else:
    5         return 2 * fun(n-1) + 1
    汉诺塔

    递归最大层数998.

    修改递归层数。

    import sys
    print(sys.setrecursionlimit(100000))
    

    二分查找

    l1 = [1, 2, 4, 5, 7, 9]
    def two_search(l,aim,start=0,end=None):
        end = len(l)-1 if end is None else end
        mid_index = (end - start) // 2 + start
        if end >= start:
            if aim > l[mid_index]:
                return two_search(l,aim,start=mid_index+1,end=end)
    
            elif aim < l[mid_index]:
                return two_search(l,aim,start=start,end=mid_index-1)
    
            elif aim == l[mid_index]:
                return mid_index
            else:
                return '没有此值'
        else:
            return '没有此值'
    print(two_search(l1,9))
    

      

  • 相关阅读:
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    How to build and run ARM Linux on QEMU from scratch
    How to debug Android Native Application with eclipse
  • 原文地址:https://www.cnblogs.com/kongzhou/p/9172645.html
Copyright © 2011-2022 走看看