堆排序 def heapify(parent_index, length, nums): temp = nums[parent_index] child_index = 2parent_index+1 while child_index < length: if child_index+1 < length and nums[child_index+1] > nums[child_index]: child_index = child_index+1 if temp > nums[child_index]: break nums[parent_index] = nums[child_index] parent_index = child_index child_index = 2parent_index + 1 nums[parent_index] = tempdef heapsort(nums): for i in range((len(nums)-2)//2, -1, -1): heapify(i, len(nums), nums) for j in range(len(nums)-1, 0, -1): nums[j], nums[0] = nums[0], nums[j] heapify(0, j, nums)