Выбор Сортировка путаницы - PullRequest
1 голос
/ 20 июля 2011

Я делаю простую сортировку в рубине, но сортирую по убыванию. Это сбивает с толку меня, потому что это работает для всех моих данных, за исключением одного числа.

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%

Любая помощь будет отличной, спасибо!

1 Ответ

3 голосов
/ 20 июля 2011

Похоже, что вы сортируете в алфавитном порядке, поэтому я бы поставил, что данные, которые вы сортируете, являются строками, если вы хотите, чтобы они были плавающими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...