ホームページ  >  記事  >  バックエンド開発  >  Python二分探索アルゴリズムの再帰的実装

Python二分探索アルゴリズムの再帰的実装

高洛峰
高洛峰オリジナル
2017-03-02 17:00:042428ブラウズ

この記事の例では、Python 二分探索アルゴリズムの再帰的実装方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

二分探索コードは次のとおりです:

def binarySearch(alist, item):
  first = 0
  last =
len(alist)-1
  found = False
  while first<=last
and not found:
midpoint = (first + last)//2
if alist[midpoint] == item:
   found = True
else:
   if item < alist[midpoint]:
  last = midpoint-1
   else:
  first = midpoint+1
  return found
testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,]
print(binarySearch(testlist, 3))
print(binarySearch(testlist, 13))

最近、再帰の単純さと明確さが気に入ったので、再帰的メソッドに修正しました:

def binSearch(lst, item):
  mid = len(lst) //2
  found = False
  if lst[mid] ==
item:
 found = True
 return found
  if mid == 0:
#mid等于0就是找到最后一个元素了。
 found = False
 return found
  else:
 if item > lst[mid]: #找后半部分
   #print(lst[mid:])
   return
binSearch(lst[mid:], item)
 else:
   return
binSearch(lst[:mid], item) #找前半部分

テストに合格しました。


Python 二分探索アルゴリズムの再帰的実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。