class MergeSort def mergeSort(list, low, high) return if low >= high mid = (low+high)/2 mergeSort(list, low, mid) mergeSort(list, mid+1, high) merge(list, low, mid, high) end def merge(list, low, mid, high) arr = Array.new(high-low+1) i=low j=high k=0 while (i<=mid && j<=high) do if list[i] < list[j] then arr[k] = list[i] i+=1 else arr[k] = list[j] j+=1 end k+=1 i+=1 j+=1 end if i<=mid then (list[i..mid]).each do |e| arr[k]=e k+=1 end elsif j<=high (list[j..high]).each do |e| arr[k]=e k+=1 end end s=0 (low..high).each do |e| list[e] = arr[s] s+=1 end puts list[low..high] end end sort=MergeSort.new sort.mergeSort([4,3,2,1],0,3) #Compilation results := # MergeSort.rb:21: syntax error, unexpected keyword_else # MergeSort.rb:24: syntax error, unexpected keyword_end # MergeSort.rb:28: syntax error, unexpected keyword_end # MergeSort.rb:35: syntax error, unexpected keyword_elsif # elsif j<=high # ^ # MergeSort.rb:39: syntax error, unexpected keyword_end # MergeSort.rb:44: syntax error, unexpected keyword_end # MergeSort.rb:51: syntax error, unexpected $end, expecting keyword_end # sort.mergeSort([4,3,2,1],0,3) # ^