Merge_sort problem

here is the merge_sort i write in ruby. but it doesn’t produce the
right answer, i can’t find where the problem is . thanks in advance

def merge(a, p, q, r)
a1=a[0…(q-p)]
a2=a[(q-p+1)…r]
a1<<99999999
a2<<99999999
i=j=0
for k in (p…r)
if a1[i]<=a2[j]
a[k]=a1[i]
i=i+1
else
a[k]=a2[j]
j=j+1
end
end
end

def merge_sort(a,p,r)
if p<r
q =(p+r)/2
merge_sort(a,p,q)
merge_sort(a,q+1,r)
merge(a,p,q,r)
end
end

a=[]
10.times {a<<rand(10)}
p a
merge_sort(a,0,9)
p a

got it, i write something stupid ,:slight_smile: