code I can't find the my mistake, can anyone help:
class ArrayMethods
def initialize
end
def mergeSort(arr=[])
if(arg.length <= 1)
return arr;
end
left=[], right=[], result=[];
x = 0, y = 0;
for i in (0..arr.length/2)
left[x] = arr[i];
x+1;
end
for i in (arr.length/2..arr.length)
right[y] = arr[i];
y+1;
end
left = mergeSort(left);
right = mergeSort(right);
result = merg(left, right);
return result;
end
def merge(left = [], right = [])
result=[];
i = 0, j = 0, n = 0;
while(i < left.length && j < right.length)
if(left[i] <= right[j])
result[n] = left[i];
n+1;
i+1;
end
if(right[j] <= left[i])
result[n] = right[j];
n+1;
j+1;
end
end
while(i < left.length)
result[n] = left[i]
n+1;
i+1;
end
while(j < right.length)
result[n] = right[j];
n+1;
j+1;
end
return result;
end
end
This is btw what I do to run the program:
if __FILE__ == $0 require 'ArrayMethods.rb' # TODO Generated stub arr = [45, 3, 50, 42, 84, 74, 10, 11, 23, 10]; at = ArrayMethods.new; arr2 = at.mergeSort(arr); puts arr2; end

New Topic/Question
Reply



MultiQuote






|