用于无序列表的insertsort算法

vik1245

我想问一个关于订购清单的问题。

我被要求创建一个不使用任何Python模块就将整数插入有序列表的函数。

这是我在下面创建的:

def insert_in_order(num, ordered_list):
position = 0
    for item in ordered_list:
        if num > item:
            position += 1
    ordered_list[position:position] = [num]
    return ordered_list

这个功能很好。

观察到以下输出:

insert_in_order(3, [1, 2, 4, 5])
>> [1, 2, 3, 4, 5]

olist = list(range(0, 20, 3))
insert_in_order(8, olist)
>> [0, 3, 6, 8, 9, 12, 15, 18]

然后,我被要求使用该函数insert_in_order对无序列表进行排序,例如[91, 80, 34, 4],我尝试了多种方式。

def insert_sort(unordered_list):
    ordered_list = []
    for item in unordered_list:
        ordered_list = insert_in_order(item, unordered_list)

但是,这并没有产生我想要的结果,因为它不停地通过将每个项目多次添加到列表中来不断前进。

如何使用原始功能并修改代码中的行以排序无序列表?

泥浆
def insert_sort(unordered_list):
    ordered_list = []
    for item in unordered_list:
        ordered_list = insert_in_order(item, ordered_list)
    return ordered_list

现在仔细看一下,找出与您的代码不同的地方;-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章