2 つの質問があります。
1)最近、私はmax heapを構築しようとしています。CLRSを読んでも、実行してもバグが見つかりません。以下は私のコードです...
def maxHeapify(list, index):
int = index
left = (int+1) * 2 - 1
right = (int+1) * 2
largest = 0
if left < len(list):
if (left <= len(list)) & (list[left] >= list[int]):
largest = left
else:
largest = int
if right < len(list):
if (right <= len(list)) & (list[right] >= list[largest]):
largest = right
else:
pass
if largest != int:
listNew = swapWithinList(list, int, largest)
listNew = maxHeapify(listNew, largest)
else:
return listNew
def swapWithinList(list, id1, id2):
num1 = list[id1]
num2 = list[id2]
listNew = list[:id1]
listNew.append(num2)
listNew = listNew + list[(id1+1):id2]
listNew.append(num1)
listNew = listNew + list[(id2+1):]
return listNew
入力しますが、コンソールには次のように表示されます。
UnboundLocalError: local variable 'listNew' referenced before assignment
returnステートメントを間違った行に置いたということですか、それとも言及していないことがありますか?
2)反復とは何ですか?
質問をするとき、私は少し恥ずかしいです。しかし、反復とは何ですか?ウィキは、プロセスの各繰り返しがそれを意味すると言っているので、ループが各ラウンドを与える結果ですか?
イテレータはPythonの基本要素のようですが、イテレータとイテレーションの違いは何ですか?