0
私は本の電話のバイナリ検索ツリーを書いています。問題は、メインコードを書くときです。私は辞書のデータ構造を使用しようとしましたが、連絡先の名前をキーとする方法を理解できません。私は名前を書いて電話番号を価値として得たいと思っています。辞書構造のキーとして名前を渡すにはどうすればいいですか?
(実際にソートされたリストとしてalist
があれば)かなり近かったそれはので、私は、私はあなたを助けるだろうと思った。これは、コード
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
phonebook = {}
phonebook["John"] = 938477566
phonebook["Jack"] = 938377264
phonebook["Jill"] = 947662781
print(binarySearch(phonebook, "John"))
print(binarySearch(phonebook, "Jack"))
バイナリ検索ではなく、辞書をソートする必要があります。 – sberry
辞書検索のために特別な検索機能が必要なのはなぜですか?彼らはすでにO(1)です。 – TigerhawkT3
'phonebook'には、 'John'、 'Jack'、 'Jill'の3つのキーがあります。 'alist [midpoint]'を呼び出すと、 'midpoint'は数字(この場合は1)です。あなたは' phonebook [1] 'を呼び出しています.3つの既存のキーの1つではないので存在しません –