堆排序为什么不用额外空间
堆排序的空间复杂度是 O(1),因为【0】。
堆排序稳定吗
堆排序【0】。
建堆之后堆顶是几
把 [17, 24, 15, 13, 23] 建成大顶堆。运行下面这段程序: def sift_down(h, i, n): while True: big = i l = 2 * i + 1
堆排完是什么样
运行下面这段程序: def sift_down(h, i, n): while True: big = i l = 2 * i + 1 r = 2 * i + 2 if
先把下沉写出来
补全 sift_down:让下标 i 上的元素往下沉,只在前 n 个元素里做。 把 [13, 24, 15] 的 0 号下沉一次,输出第一个。
接上排序
补全 hsort:先建堆,再反复把堆顶换到末尾并把堆缩小一格。 排完拼起来输出。
三种排序结果必须一样
把堆排、归并、冒泡都写出来,比较三者对同一个数组的结果。 三个都一样输出 三种一致,否则输出 有不一致。
Python 内置的 sorted 是稳定的吗
Python 的 sorted 和 list.sort【0】。
什么时候该自己写排序
实际工程里,自己动手写排序的理由通常是【0】。
按第二个字段排出来是什么顺序
四条记录按第二个字段排序。运行下面这段程序: rows = [("阿岚", 2), ("小满", 1), ("阿泰", 2), ("南风", 1)] print