-->
当前位置:首页 > 题库 > 正文内容

程序填空题:归并排序 - 实验13 从前有座山, 山里有座庙 - 《Python编程基础及应用实验教程》 - 高教社

Luz3年前 (2022-06-16)题库842
归并排序是一种使用分治法的排序算法。请结合下述伪代码所描述的算法思想,将下述程序补充完整,使其可以正常运行。

具体的分治算法思想请参考实验教程。<br>


![image.png](~/a2d843f3-ab7b-4de4-a40f-1850b6fb276a.png)


![image.png](~/0559e1fb-d718-473d-8722-58642dd42534.png)



<br>



python
def merge_sort(lst):
if len(lst) <= 1:
return lst

middle = len(lst) // 2
left = merge_sort(lst[:middle])
right =
return merge(left,right)

def merge(A,B):
if len(A) == 0:
return B
if len(B) == 0:
return A
if A[0] > B[0]:
return [B[0]] + merge(A,B[1:])
else:
return


lst = [-9,10,1,5,3,7,8,10]
print(merge_sort(lst))


期望的执行结果为:

[-9, 1, 3, 5, 7, 8, 10, 10]






答案:
第1空:merge_sort(lst[middle:])

第2空:[A[0]] + merge(A[1:],B)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。