美文网首页
插入排序

插入排序

作者: 转身丶即天涯 | 来源:发表于2019-07-28 10:39 被阅读0次

思路

在给定序列nums中,找到最小值,并和nums中的第一个元素交换位置,然后从第二个元素开始遍历,找到最小值并和nums中的第二个元素交换位置,依次类推,直至遍历到最后一个元素。

示例代码

def my_insert_sort(nums):
    """
    插入排序
    :param nums: 包含数值的list 
    :return: 一个新的排好序的list
    """
    if len(nums) <= 1:
        return nums

    result = []
    while True:
        for i in nums:
            minimum = min(nums)
            if i == minimum:
                result.append(i)
                nums.remove(i)

        if nums == []:
            break

    return result

l = [5, 7, 9, 3, 8, 2, 1]
result = my_insert_sort(l)
print(result)

上面的代码中使用min()函数,它的功能是找到list中最小的数值。
函数传入一个nums列表,如果nums的长度只有一个元素或者空列表,则直接返回。
然后使用while循环遍历nums列表,通过min()函数找到最小值,并把最小值放入result列表,然后从nums列表中删除最小值,直至nums列表为空为止。

相关文章

网友评论

      本文标题:插入排序

      本文链接:https://www.haomeiwen.com/subject/fteurctx.html