Я хочу написать метод, который находит медиану заданного массива целых чисел. Может кто-то объяснить, что не так/происходит в моем коде. Если массив имеет нечетное число целых чисел, он возвращает средний элемент из отсортированного массива. Если массив имеет четное число целых чисел, верните среднее из средних двух элементов из отсортированного массива. Ниже мой код, который продолжает застревать в бесконечном цикле.Ruby Method, который возвращает медианное целое число в массиве
def median_finder(array)
array.sort
element_count = array.length
if element_count % 2 != 0
while element_count != 1 do
array.shift
array.pop
end
return array
else element_count % 2 == 0
while element_count != 2 do
array.shift
array.pop
end
median = ((array[0] + array[1])/2)
return median
end
end
Следует отметить, что в то время как мой ответ фиксирует вашу конкретную проблему, это на самом деле не рубин-эск путь. Вы должны обязательно взглянуть на другие ответы на свой вопрос, особенно на использование Ури Агасси «инъекций» и использование Tin Man «нечетных?» И разбиение массива ('array [1 ..- 2]').Это примеры использования функций языка в ваших интересах и не решения проблем, которые уже решены. – afontaine