题目
思路
理解归并排序和插入排序
将某躺排序中途的数列与自己所写的归并排序和插入排序进行对比
代码
import sys
leng=int(sys.stdin.readline())
input_=list(map(int,sys.stdin.readline().split(' ')))
sort_input=list(map(int,sys.stdin.readline().split(' ')))
input_1=input_[:]
sort_input_1=sort_input[:]
def merge(list_,sorted_list,len_):
i_break=0
j=2
while(j<=len_):
for i in range(0,len_,j): #对相邻的序列进行归并并排序
list_[i:i+j] = sorted(list_[i:i+j])
if i_break==1:
print("Merge Sort")
print_ = [str(i) for i in list_]
print(' '.join(print_))
break
if sorted_list ==list_:
i_break=1
j=j*2
def insert(list_,sorted_list,len_):
i_break=0
for j in range(2,len_):
list_[0:j] = sorted(list_[0:j])
if i_break == 1:
print("Insertion Sort")
print_ = [str(i) for i in list_]
print(' '.join(print_))
break
if sorted_list == list_:
i_break = 1
merge(input_,sort_input,leng)
insert(input_1,sort_input_1,leng)