class Heap:
def __init__(self, items = []):
self.items = items
def pop(self):
#Build Max Heap
n = len(self.items)
for i in range((n-1)//2, -1, -1):
self.sift_down(i)
for i in range(n-1, 0, -1):
#swap
self.items[i], self.items[0] = self.items[0], self.items[i]
self.sift_down(i)
return self.items
def sift_down(self, i):
largest = i
l = 2 * i +1
r = 2 * i +2
n = len(self.items)
if l < n and self.items[i] < self.items[l]:
largest = l
if r <n and self.items[l] < self.items[r]:
largest = r
if largest != i :
self.items[i], self.items[largest] = self.items[largest], self.items[i]
self.sift_down(largest)
def is_empty(self):
if len(A):
return False
else:
return True
A = [30, 6, 73, 29, 100, 80, -7, 206, 3]
heap = Heap(A)
B = []
#while not heap.is_empty():
B = [heap.pop()] + B
print(B)
여기서 틀린부분 찾을수있는새기 있냐 ?
너희 어머니께 여쭈어봐
어머니 없다 질문받는다
실행결과랑 원하는 결과부터 가져와라
^ 힙정렬(맨왼쪽이 최소값) 이 안된다 자살하기 40분전이다 질문받는다
223나쁜새끼ㅠ
ㄴ 국비소리 하지말고 대학이나가
나이가 많아서..ㅠㅠ 일본이랑 프로그래밍 꿈을 못버리겠다..
열심히해
https://stackoverflow.com/
글쓴놈
여기가서 질문해라
돈주면풀어드림 - dc App
^위에 답변은 고맙다
2i 2i+1