python自己的sort函数是selection_sort和merge_sort结合的算法(我是在网上的视频课上看到的)
但是python会限制的你的递归深度,具体没试过,例如这段简单求和的代码
def mysum(n):
if n == 0:
return n
return n+mysum(n-1)
当mysum(9999)时就会有:
RecursionError: maximum recursion depth exceeded in comparison
当我的n值很大时就会报错达到最大深度,如图:
我就猜想,因为merge_sort时一个递归的方式来完成排序的,是不是当一个list很长很长的时候,merge_sort就会达到最大depth,而报错?
换句话说 python自家的sort或者sorted是不是不能给一个很长很长的list排序???
还有就是有问题请教,为什么python的sort会采用merge_sort,而其他流行的语言自己的sort是quick_sort?
python自学的初学者,不是很明白,谢谢大神答复。