我正试图编写这个函数gensort(list)
,它接受一个数字列表,并返回一个新的具有相同数字的列表,但是从低到高排序。输出的示例如下
>>> gensort([111, 1, 3.14])
[1, 3.14, 111]
我编写了一个函数来获取一个元素并将其返回到升序顺序中的位置:
^{pr2}$现在我试着把它应用到我的列表的其余部分,我想到了这个:
def gensort(list):
insert = insert_sorted(list[min],list)
return insert
然而,这一点也不管用。我想知道如何使用insert_递归排序,或者编写一个不同的列表理解来让它返回整个列表的正确顺序。在
我知道有内置的排序工具,但我正试着用我目前所掌握的来写这篇文章。在
您没有问创建自己的排序函数是否是一个好主意,因此我将回答您提出的问题,方法之一是使用insert_nusorted创建完整的gensort函数:
为什么不使用sort? 如果您只输入数字,请简单地执行以下操作:
这不是一个工具,它是python中的标准功能。你的方法有一个很大的缺点,它会很慢,而且需要很长的列表内存。最好是向列表中添加新元素并对其运行排序函数。在
当您的函数向n个元素数组添加一个元素时,您将有n+1个函数调用,创建n+1个子数组。这是一种缓慢的方式,而且是不可接受的。如果不想使用python排序,请改用单循环排序算法。在
python中的气泡排序示例:
^{pr2}$相关问题 更多 >
编程相关推荐