class group_rank:
def __init__(self):
pass
def group(self,list1,list2):
list_group=[]
i,j=0,0
while i<len(list1):
while j<len(list2):
if list2[j]<=list1[i]:
list_group.append(list2[j])
j+=1
else:
list_group.append(list1[i])
i+=1
if i==len(list1):
break
if j==len(list2):
break
if i<len(list1):
list_group.extend(list1[i:])
elif j<len(list2):
list_group.extend(list2[j:])
return list_group
def rank(self,datalist):
data_list=[[x] for x in datalist]
while len(data_list)>1:
i = 0
list3=[]
while i<len(data_list)-1:
list3.append(self.group(data_list[i],data_list[i+1]))
i+=2
if len(data_list)%2==0:
data_list=list3
else:
data_list=list3+[data_list[-1]]
del list3
return data_list
归并排序的python实现
最新推荐文章于 2024-07-19 17:03:11 发布