Я делаю простую сортировку в рубине, но сортирую по убыванию. Это сбивает с толку меня, потому что это работает для всех моих данных, за исключением одного числа.
def parallel_sort(data, labels)
raise "unequal array lengths" if data.length != labels.length
temp = File.open("temp.txt", "w")
0.upto(data.length - 2) do |i|
max = i # largest value
(i+1).upto(data.length - 1) { |j| max = j if data[j] > data[max] }
data[i], data[max], labels[i], labels[max] = data[max], data[i], labels[max], labels[i] if i != max
temp.puts "->", data, "\n", labels, "\n"
end
return [data, labels]
end
несортированные данные:
->
26.71%
0.17%
0.65%
0.36%
0.17%
2.79%
0.04%
18.03%
0.13%
25.7%
25.18%
0.36%
Повторы:
->
26.71%
25,7%
0.65%
0.36%
0.17%
2.79%
0.04%
18.03%
0.13%
0,17%
25.18%
0.36%
->
26.71%
25.7%
25,18%
0.36%
0.17%
2.79%
0.04%
18.03%
0.13%
0.17%
0,65%
0.36%
18.03% пропускается здесь:
->
26.71%
25.7%
25.18%
* * 2,79 тысячи тридцать-четыря% * ** 1036 тысяча тридцать пять * 0,36%
->
26.71%
25.7%
25.18%
2.79%
18,03%
0.36%
0.04%
0,17%
0.13%
0.17%
0.65%
0.36%
->
26.71%
25.7%
25.18%
2.79%
18.03%
* * 0,65 тысяча пятьдесят один%
0.04%
0.17%
0.13%
0.17%
* +1054 * 0,36%
0.36%
* * тысяча пятьдесят-семь
->
26.71%
25.7%
25.18%
2.79%
18.03%
0.65%
0,36%
0.17%
0.13%
0.17%
0,04% * ** тысяча шестьдесят-четыре ** 1066 тысячи шестьдесят-пять *
->
26.71%
25.7%
25.18%
2.79%
18.03%
0.65%
0.36%
0,36%
0.13%
0.17%
0.04%
0,17%
->
26.71%
25.7%
25.18%
2.79%
18.03%
0.65%
0.36%
0.36%
0,17%
0,13%
0.04%
0.17%
->
26.71%
25.7%
25.18%
2.79%
18.03%
0.65%
0.36%
0.36%
0.17%
0,17%
0.04%
0,13% `
->
26.71%
25.7%
25.18%
2.79%
18.03%
0.65%
0.36%
0.36%
0.17%
0.17%
0,13% `
0,04%
Не могу понять, почему 2,79% считается> 18,03%
Любая помощь будет отличной, спасибо!