插入呢

同一个数组跑插入排序。运行下面这段程序: def insertion_stat(a): b = list(a) cmps = 0 moves = 0 for i in range(1, len(b)):

开始练习 →

给冒泡加上计数

补全 bubble_stat:返回(比较次数, 交换次数)。 把两个数拼起来输出(用 / 隔开)。

开始练习 →

⚠️ 两种排序的比较次数差多少

把 bubble_stat 和 insertion_stat 都写出来,把两者的比较次数拼起来输出(冒泡在前,用 / 隔开)。 ——同样是 O(n²),实际做的事差着不少。

开始练习 →

归并排序的思路

归并排序的做法是【0】。

开始练习 →

合并两个有序数组怎么合

把两个已排好的数组合成一个,做法是【0】。

开始练习 →

归并排序的空间代价

归并排序比冒泡插入多花的是【0】。

开始练习 →

合并这两段得到什么

把 [13, 17] 和 [15, 24] 合成一个。运行下面这段程序: def merge(left, right): out = [] i = 0 j = 0 while i < len(left)

开始练习 →

先把"合并"写出来

补全 merge:把两个已排好的列表合成一个。 ⚠️ 一边取完之后,另一边剩下的要全部接上去。 合并 [13, 17] 和 [15, 24],拼起来输出。

开始练习 →

再把"拆分"接上

补全 msort:从中间切开,两边各自递归排好,再用 merge 合起来。 排完之后拼起来输出。

开始练习 →

归并是稳定的吗

用 merge 合并时,两边相等的元素先取左边那个(写成 <=),归并排序就是稳定的。 补全后按第二个字段排 [("阿岚",2),("小满",1),("阿泰",2),(&qu

开始练习 →