Я пытаюсь создать многопоточную версию алгоритма сортировки. Я не понимаю, почему этот алгоритм всегда возвращает только Array[1]
вместо полного массива.Ruby parallel sorting
class Array
def quick_sort
return self if self.length <= 1
pivot = self[0]
if block_given?
less, greater_equals = self[1..-1].partition { yield(x, pivot) }
else
less, greater_equals = self[1..-1].partition { |x| x < pivot }
end
l = []
g = []
Process.fork {l = less.quick_sort }
Process.fork {g = greater_equals.quick_sort}
Process.waitall
return l + [pivot] + g
end
end
Что вы подразумеваете под 'Array [1]'? – sawa
Массив с одним элементом типа 'a = Array.new ([1])' – DeMarco
Почему бы вам не написать '[1]'? – sawa