# *************************==== 遞迴 與 演算法#遞迴# n = 1 金老闆 38+2 =40
# n = 2 alex n+2= 金老闆 36+2 = 38
# n = 3 wusir n+2 = alex wusir 36
# def age(n): #n = 2
# if n == 3:
# return 36
# else:
# return age(n+1)+2
## jin_age = age(1) # 40
# print(jin_age)
# 求階乘 _ 遞迴函式
# 5! = 5*4*3*2*1 # 5 * 4! fn(5)
# 4! = 4*3*2*1 # 4 * 3! fn(4)
# 3 * 2! fn(3)
# 2 *1! fn(2)
# 1 fn(1) = 1
# def fn(n): #n=5
# if n == 1:return 1
# return fn(n-1) * n
# print(fn(5))
#演算法# 演算法 計算的方法
# 99*99 = 99*(100-1) = 99*100-99*1 = 99*100-99 = 9900-99 = 9801 _ 人計算的方法
# 99 * 99
# 計算機的思維和人腦的思維是不同的
# 演算法很難
# 計算機領域的 演算法 是計算機認為簡便的演算法
# 查詢演算法
# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
# 66
# 方法一: 迴圈 # 5000000 4999999
# 方法二: l.index(66) #最正確的方法
# 演算法
# 從有序的列表中查詢值的位置
# [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
# 41 < 66
# [42,43,55,56,66,67,69,72,76,82,83,88]
# 66 < 67
# [42,43,55,56,66]
# 55 < 66
# [56,66]
# 56 < 66
# [66]
# 66 == 66
# 遞迴 : 解決乙個問題,問題的答案,依託於另乙個問題,另外的這個問題和要解決的問題是基本一致的
# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
# def find(l,aim):
# mid = len(l)//2
# if l[mid] > aim:
# new_l = l[:mid]
# find(new_l,aim)
# elif l[mid] < aim:
# new_l = l[mid+1:]
# find(new_l, aim)
# elif l[mid] == aim:
# print('找到了:',mid,aim,l[mid])
# find(l,66)
# 完整詳細的 二分查詢
# def find(l,aim,start=0,end=none):
# if end == none:end = len(l)-1
# if start <= end:
# mid = (end - start) // 2 + start
# if l[mid] > aim:
# return find(l,aim,start=start,end=mid-1)
# elif l[mid] < aim:
# return find(l,aim,start=mid+1,end=end)
# elif l[mid] == aim:
# return mid
# else:
# return none
# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
# print('ret :',find(l,18))
# 1 如果要查詢的值不在列表中
# 2 引數的簡化
# 3 返回值的問題
python遞迴查詢 python 遞迴,二分查詢
print list 胡辣湯 lst 河南話 四川話 東北 山東 上海 r reversed lst print list r huiwen 不是上海自來水來自海上 s huiwen 1 it reversed huiwen 返回的是迭代器 s for el in it s el print s l...
二分查詢與遞迴式二分查詢
二分查詢 public class binarysearch arrays.sort arr todo auto generated method stub int low 0 int high arr.length 1 while low high elseelse 遞迴實現二分查詢 public...
Python實現二分查詢(遞迴與非遞迴)
二分查詢 每次能夠排除掉一半的資料,查詢的效率非常高,但是侷限性比較大。必須是有序序列才可以使用二分查詢。1.非遞迴演算法 def binary search lis,nun left 0 right len lis 1 while left right 迴圈條件 mid left right 2 ...