思路
在给定序列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列表为空为止。
网友评论