【发布时间】:2017-10-25 22:36:38
【问题描述】:
我已经在这段代码上工作了一段时间了。在我尝试将一个值推入散列中的数组之前,一切似乎都很好。 我收到一条错误消息,该值为零,但是我在尝试将所有有问题的值存储在数组中之前检查了所有有问题的值,但它仍然不允许我这样做。有任何想法吗? buckets[sdigit].push(num) 是告诉我我的值之一是 nil 的行。
arr = []
while arr.size < 100
arr.push(rand(1000))
end
for outer_index in arr
puts "for outer index(#{outer_index} in arr"
buckets = Hash.new()
puts "buckets = Hash.new()"
puts "for j in 0..9"
for j in 0..9
buckets[j.to_s] = Array.new()
#buckets[j.to_s] = [j]
puts "buckets[j.to_s(#{buckets[j.to_s]})"
end
for inner_index in arr
puts "for inner_index(#{inner_index}) in arr"
num = inner_index
puts "num(#{num}) = inner_index(#{inner_index})"
sdigit = num.to_s[-1]
puts "sdigit(#{sdigit}) = num.to_s[-1](#{num.to_s[-1]})"
digit = sdigit.to_i
puts "digit(#{digit}) = sdigit.to_i(#{sdigit.to_i})"
puts "buckets[digit] = #{buckets[sdigit]}"
puts "#{buckets["1"]}"
puts "o#{num}"
puts buckets
buckets[sdigit].push(num)
puts "buckets[digit].push(num)(#{buckets[digit].push(num)})"
end
arr = buckets.values.flatten
end `
【问题讨论】:
标签: arrays ruby sorting hash radix-sort