Implementazioni di algoritmi/Merge sort: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 311:
 
===[[w:Python|Python]]===
 
===[[w:Python|mu]]===
<source lang="Python">
def mergesort(v,l,r):
if l >= r: return
m = (l+r)/2
mergesort(v,l,m)
mergesort(v,m+1,r)
merge(v,l,m,r)
def merge(v,i1,f1,f2):
dim = f2-i1+1
aux = []
i2 = f1+1
i = 0
j = i1
while i1 <= f1 and i2 <= f2:
if v[i1] < v[i2]:
aux.append(v[i1])
i1 += 1
else:
aux.append(v[i2])
i2 += 1
i += 1
if i1 <= f1:
for i in xrange(i,dim):
aux.append(v[i1])
i1 += 1
else:
for i in xrange(i,dim):
aux.append(v[i2])
i2 += 1
for i in xrange(dim):
v[j] = aux[i]
j += 1
</source>
 
== Altri progetti ==