合并排序中的交换数(Python)
我应该如何找到合并排序中完成的交换数量,下面是算法。计数计算已完成,问题是:未返回计数变量合并排序中的交换数(Python),python,count,swap,mergesort,Python,Count,Swap,Mergesort,我应该如何找到合并排序中完成的交换数量,下面是算法。计数计算已完成,问题是:未返回计数变量 count=0 def mergesort(elist,count): #print(count) low=0 high=len(elist) #print(len(elist)) if len(elist)<2: return elist mid=int((low+high)/2) enlist=[] y=mergeso
count=0
def mergesort(elist,count):
#print(count)
low=0
high=len(elist)
#print(len(elist))
if len(elist)<2:
return elist
mid=int((low+high)/2)
enlist=[]
y=mergesort(elist[:mid],count)
z=mergesort(elist[mid:high],count)
i=0
j=0
while(i<len(y) and j<len(z)):
if y[i]<=z[j]:
enlist.append(y[i])
i+=1
else:
count+=abs((len(y)+1)-i)
enlist.append(z[j])
j+=1
enlist+=y[i:];
enlist+=z[j:]
return enlist,count
i=0
list=[2,1,3,4,5,6,7]
print(mergesort(list,0))
count=0
def合并排序(列表、计数):
#打印(计数)
低=0
高=透镜(elist)
#打印(len(elist))
如果len(elist)您是Python的新手吗?您刚刚错过了缩进。
请改正它。
.
您的代码应该是这样的
def mergesort(elist, count):
#st1
#st2
while..
#st3
#st4
return count
请注意缩进。如果无法在函数外部执行返回
,请尝试将返回
替换为打印
...
print enlist,count
“无法返回”是什么意思?请正确缩进代码,并更准确地解释问题。请重新格式化代码,使其正常运行。复制粘贴它会为我返回29的语法错误。