day_06递归二分查找

Posted kongzhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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))

  

以上是关于day_06递归二分查找的主要内容,如果未能解决你的问题,请参考以下文章

Day589.二分查找(非递归) -数据结构和算法Java

Python Day 15 (递归函数二分查找算法)

day 15,递归函数,二分查找法

day16 -- 递归函数,二分查找

oldboy seventeenth day. I love Python. 万恶之神: 递归; 初始算法: 二分查找;

Day5_递归_二分法