python实现Fibonacci和二分法

本文介绍了一种实现斐波那契数列的高效算法,并通过使用数组来减少重复计算,同时展示了如何利用二分法进行快速搜索。通过对这两种经典算法的讲解,帮助读者更好地理解递归与搜索的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最简单的实现Fabonacci代码:

def Fibonacci(n):
    
if n <= 1:
         
return 1
    
else:
         
return Fibonacci(n-1+ Fibonacci(n-2)


我们可以用一个数组存储,牺牲空间换取时间,避免多次无效求值

ExpandedBlockStart.gif代码
代码
list 
= [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

def Fibonacci(n):
    
if list[n] != 0:
        
return list[n]
    
else
        list[n] 
= Fibonacci(n-1+ Fibonacci(n-2
        
return list[n]


 

二分法

ExpandedBlockStart.gif代码
def BinarySearch(numbers,x,n):
    left 
= 0;right = n - 1
    
while(left <= right):
        middle 
= (left + right)/2
        
if numbers[middle] == x:
            
return middle + 1
        
elif numbers[middle] > x:
            right 
= middle-1
        
else:
            left 
= middle + 1
    
else:
        
return -1


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值