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

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

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

具体的分治算法思想请参考实验教程。<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]


<br>**拼尽全力还是不会?参考B站习题讲解**<br>

哔哩哔哩up主:[海洋饼干叔叔](https://space.bilibili.com/384177380) [Python课程](https://www.bilibili.com/video/BV1kt411R7uW/)
[Python习题](https://www.bilibili.com/video/BV1iL411t7UZ/)
[简洁的C和C++](https://www.bilibili.com/video/BV1it411d7zx/)
作者每天分享一篇关于C/C++/Python的技术文章,学习编程不迷路。
![image.png](~/7c4cfd2d-8e3e-40cd-826d-299d4200e600.png)







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

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

发表评论

访客

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