python 代码
m, n = tuple(map(int, raw_input().split()))
nums = map(int, raw_input().split())
def heapSort(nums, m):
def heapify(nums, i, n):
if i<n:
l, r, m = 2*i+1, 2*i+2, i
if l<n and nums[l]>nums[m]:
m = l
if r<n and nums[r]>nums[m]:
m = r
if m!=i:
nums[i], nums[m] = nums[m], nums[i]
heapify(nums, m, n)
parent = (m-2)/2
for i in range(parent, -1, -1):
heapify(nums, i, m)
for i in range(m-1, -1, -1):
nums[i], nums[0] = nums[0], nums[i]
heapify(nums, 0, i)
heapSort(nums, m)
print ' '.join(map(str, nums[:n]))