Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,753 questions

55,518 answers

573 users

How to build sparse array in Ruby

1 Answer

0 votes
#
# A sparse array stores only non‑zero values.
# Ruby's Hash is a natural fit:
#   - Keys represent indices that actually exist
#   - Values represent stored data
#   - Lookup and insertion are fast
#

# Sparse array type (conceptual)
SparseArray = Hash
DenseArray  = Array

#
# build_dense:
# Converts sparse → dense.
#
# Steps:
# 1. Find the maximum index in the sparse structure
# 2. Allocate a dense array of size max_index + 1
# 3. Fill with zeros
# 4. Copy sparse values into their positions
#
# sa :: Hash{Integer => Integer}
# returns :: Array<Integer>
#
def build_dense(sa)
  # Find largest index
  max_index = sa.keys.max || 0

  # Allocate dense array filled with zeros
  dense = Array.new(max_index + 1, 0)

  # Copy sparse values
  sa.each do |index, value|
    dense[index] = value
  end

  dense
end

def main
  # Sparse entries (zero values omitted)
  sa = {
    2  => 10,
    10 => 7,
    8  => 42,
    3  => 5
  }

  dense = build_dense(sa)

  puts "Dense array:"
  print "[ "
  dense.each { |v| print "#{v} " }
  puts "]"
end

main



# run:
#
# Dense array:
# [ 0 0 10 5 0 0 0 0 42 0 7 ]
#

 



answered 2 days ago by avibootz
...