我有一个数组arr = [1,2,1,3]。
当我使用heappush函数将数组元素按原样推送到堆中时,其顺序与数组中的顺序完全相同:
arr = [1,2,1,3]
heap = []
for i in range(len(arr)):
heapq.heappush(heap, arr[i])
print(heap)
Result: [1, 2, 1, 3]
现在,如果我推送arr元素的负值,堆就会按预期排序。
arr = [1,2,1,3]
heap = []
for i in range(len(arr)):
heapq.heappush(heap, - arr[i]) <---- Here
print(heap)
Result: [-3, -2, -1, -1]
我想知道为什么当它们的负值被添加到堆中时heappush对数组元素进行排序但是当正值被推入堆时它不做任何事情。