##### heapq.堆排序 - 在这个案例中,我们定义了一个 heap_sort 函数,它接受一个列表作为输入,并使用 heapq 模块中的函数将输入列表转化为堆(最小堆) - 然后,我们循环地从堆中弹出最小元素,直到堆为空,这样就得到了一个按照升序排列的有序列表。 ```python import heapq def heap_sort(arr): heap = arr[:] heapq.heapify(heap) # 将列表转化为堆 sorted_list = [] while heap: sorted_list.append(heapq.heappop(heap)) # 弹出堆中最小元素 return sorted_list if __name__ == "__main__": input_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_list = heap_sort(input_list) print("Original List:", input_list) print("Sorted List:", sorted_list) ```