插入排序
def direct_sort(list1):
for i in range(1,len(list1)):
temp = list1[i]
j = i-1
while j >= 0 and temp < list1[j]:
list1[j+1] = list1[j]
j -= 1
list1[j+1] = temp
return list1
调用函数
list1 = [5,6,3,8,5,1]
print(direct_sort(list1))
输出结果为:
[1, 3, 5, 5, 6, 8]
归并排序,我还没有研究透这个实现过程,请大佬们赐教
def func(data):
if len(data) == 1:
return data
mid = len(data) // 2
left = data[:mid]
right = data[mid:]
left_func = func(left)
right_func = func(right)
return func2(left_func,right_func)
def func2(left, right):
result = []
while len(left)>0 and len(right)>0:
if left[0]<right[0]:
result.append(left.pop(0))
else:
result.append(right.pop(0))
result += left
result += right
return result
调用输出结果为:
print(func(list1))
[1, 3, 5, 5, 6, 8]