def search(num,seq=[]): if len(seq)==1: print(seq[0]) return seq[0] elif num<seq[len(seq)//2]:
seq=seq[0:len(seq)//2]
search(num,seq=seq[:]) elif num > seq[len(seq)//2]:
seq=seq[len(seq)//2+1:]
search(num,seq=seq[:]) else: return seq[len(seq)//2]
seq=[1,2,3,4,5,6,7,8]
seq.sort()print(seq)print(search(4,seq=seq[:]))[1, 2, 3, 4, 5, 6, 7, 8]4None望解決,這是一個二分法使用案例
1 回答

HUX布斯
TA貢獻1876條經驗 獲得超6個贊
每一個函數在末尾都隱藏了一句 return None
,除非你寫了自己的return語句
def search(num): global seq if len(seq) == 1: print(seq[0]) return seq[0] elif num < seq[len(seq)//2]: seq = seq[0:len(seq)//2] print(seq) return search(num) elif num > seq[len(seq)//2]: seq = seq[len(seq)//2+1:] print(seq) return search(num) else: return seq[len(seq)//2] seq = [1, 2, 3, 4, 5, 6, 7, 8] seq.sort()print(seq[:])print(search(4))
- 1 回答
- 0 關注
- 795 瀏覽
添加回答
舉報
0/150
提交
取消