def _percolate_up(self):
i = len(self)
parent = i // 2
while parent > 0:
if self.items[i] < self.items[parent]:
self.items[parent], self.items[i] = self.items[i], self.items[parent]
i = parent
parent = i // 2
현재 책에서는 min heap 구현 시 위와 같이 삽입된 노드가 그 부모보다 작지 않을 때 swap은 하지 않고 계속 위로 percolate 하도록 되어있습니다.
이때 아래처럼 break을 걸어 percolate을 멈춰야 하지 않나요?
def _percolate_up(self):
i = len(self)
parent = i // 2
while parent > 0:
if self.items[i] < self.items[parent]:
self.items[parent], self.items[i] = self.items[i], self.items[parent]
i = parent
parent = i // 2
else:
break
현재 책에서는 min heap 구현 시 위와 같이 삽입된 노드가 그 부모보다 작지 않을 때 swap은 하지 않고 계속 위로 percolate 하도록 되어있습니다.
이때 아래처럼 break을 걸어 percolate을 멈춰야 하지 않나요?