필자는 기수 정렬을 위해 잠시 동안이 코드에서 작업 해왔다. 해쉬 내의 배열에 값을 넣을 때까지 모든 것이 잘 어울리는 것처럼 보였습니다. 값이 nil이라는 오류 메시지가 표시되지만 배열에 저장하려고하기 직전에 모든 값을 확인한 후에도 그렇게 할 수는 없습니다. 어떤 아이디어? buckets [sdigit] .push (num)는 내 값 중 하나가 0이라고 알려주는 행입니다.해시 내의 배열에 값을 푸시
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 `