思路1:先单独排序,再合并
注意:sorted函数是又返回值的,不改变原来list,注意
若是多个数组,则可以对其中所有第一个数进行再排序
def sort1(list1,list2):
list1 = sorted(list1)
list2 = sorted(list2)
res = []
while(len(list1) and len(list2)):
if list1[0] < list2[0]:
res.append(list1[0])
del list1[0]
else:
res.append(list2[0])
del list2[0]
res.extend(list1)
res.extend(list2)
print(res)
思路2:插入排序到第三个空数组
考虑细节:1 注意判断是否是最小元素,插入到头部
2 其实可以合并重复代码,多个数组也是一样的,三层循环。
def sort2(list1,list2):
res = []
for i in range(len(list1)):
if len(res) == 0:
res.append(list1[i])
continue
for j in range(len(res)-1,-2,-1):
if list1[i] < res[j]:
if j == 0:
res.insert(0, list1[i])
continue
else:
res.insert(j+1,list1[i])
break
for i in range(len(list2)):
for j in range(len(res)-1,-2,-1):
if list2[i] < res[j]:
if j == 0:
res.insert(0, list2[i])
continue
else:
res.insert(j+1,list2[i])
break
print(res)
sort1([3,4,2],[2,4,1,5,6])