每日一题题目6:二分查找
生活随笔
收集整理的這篇文章主要介紹了
每日一题题目6:二分查找
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 #二分查找
2 '''
3 1.end問題
4 2.44對應的end<start 找不到情況
5 3.返回值遞歸的情況
6 4,611,aim太大的情況
7 '''
8 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]
9 def find(l,aim,start=0,end=None):
10 end = len(l) if end is None else end
11 Mid_index = (end - start) // 2 +start
12 if aim <= l[len(l)-1]:
13 if end >= start:
14 if l[Mid_index] > aim:
15 return find(l,aim,start=start,end = Mid_index-1)
16 elif l[Mid_index] < aim:
17 return find(l,aim,start=Mid_index+1,end=end)
18 elif l[Mid_index] == aim:
19 return Mid_index
20 else:
21 return '找不到!'
22 else:
23 return '比列表最大數都大,找不到!'
24 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]
25 ret = find(l,411)
26 ret1 = find(l,44)
27 ret2 = find(l,66)
28 ret3 = find(l,67)
29 print(ret,ret1,ret2,ret3)
運行結果:
1 比列表最大數都大,找不到! 找不到! 17 18?
轉載于:https://www.cnblogs.com/shuimohei/p/9687694.html
總結
以上是生活随笔為你收集整理的每日一题题目6:二分查找的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (十)更快的排序算法(归并、快排、基数)
- 下一篇: Python list倒序遍历(reve