Bird
Raised Fist0
Rubyprogramming~5 mins

Block parameters in Ruby - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Block parameters
O(n)
Understanding Time Complexity

When using block parameters in Ruby, it's important to see how the code runs as the input grows.

We want to know how the number of steps changes when we pass more items to the block.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

numbers = [1, 2, 3, 4, 5]
numbers.each do |num|
  puts num * 2
end

This code goes through each number in the list and prints double its value using a block with a parameter.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The each method loops over every item in the array.
  • How many times: Once for each item in the array, so as many times as the array length.
How Execution Grows With Input

As the list gets bigger, the number of times the block runs grows the same way.

Input Size (n)Approx. Operations
1010 times the block runs
100100 times the block runs
10001000 times the block runs

Pattern observation: The work grows directly with the number of items; double the items means double the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to finish grows in a straight line with the number of items you process.

Common Mistake

[X] Wrong: "Using a block with parameters makes the code run faster or slower than normal loops."

[OK] Correct: The block parameters just pass each item to the block; they don't change how many times the loop runs or how long it takes per item.

Interview Connect

Understanding how blocks with parameters work helps you explain how Ruby handles repeated tasks clearly and efficiently.

Self-Check

"What if we replaced each with map? How would the time complexity change?"

Practice

(1/5)
1.

What are block parameters in Ruby?

Choose the best description.

easy
A. Variables inside | | that receive values passed to the block.
B. Methods that define how a block works.
C. Special keywords to start a block.
D. Constants used only outside blocks.

Solution

  1. Step 1: Understand block parameters role

    Block parameters are variables placed inside | | after do or { to receive values passed into the block.
  2. Step 2: Compare options with definition

    Only Variables inside | | that receive values passed to the block. correctly describes block parameters as variables inside | | that get values passed to the block.
  3. Final Answer:

    Variables inside | | that receive values passed to the block. -> Option A
  4. Quick Check:

    Block parameters = variables inside | | [OK]
Hint: Block parameters are always inside | | after do or { [OK]
Common Mistakes:
  • Confusing block parameters with methods
  • Thinking block parameters are keywords
  • Assuming block parameters are constants
2.

Which of the following is the correct syntax for block parameters in Ruby?

array.each do ?
easy
A. [item] puts item
B. (item) puts item
C. |item| puts item
D. {item} puts item

Solution

  1. Step 1: Recall block parameter syntax

    Block parameters are placed inside vertical bars | | after do or {.
  2. Step 2: Match syntax with options

    Only |item| puts item uses |item| which is the correct syntax for block parameters.
  3. Final Answer:

    |item| puts item -> Option C
  4. Quick Check:

    Block parameters use | | [OK]
Hint: Block parameters always go inside | | after do or { [OK]
Common Mistakes:
  • Using parentheses () instead of | |
  • Using curly braces {} for parameters
  • Using square brackets [] for parameters
3.

What is the output of this Ruby code?

numbers = [1, 2, 3]
numbers.each do |n|
  puts n * 2
end
medium
A. 2 4 6
B. 1 2 3
C. Error: undefined variable n
D. nil

Solution

  1. Step 1: Understand the block parameter usage

    The block parameter n takes each element from the array numbers one by one.
  2. Step 2: Calculate output for each element

    For each n, the code prints n * 2. So outputs are 2, 4, and 6 on separate lines.
  3. Final Answer:

    2 4 6 -> Option A
  4. Quick Check:

    Each number doubled = 2,4,6 [OK]
Hint: Block parameter holds each item; multiply inside block [OK]
Common Mistakes:
  • Confusing block parameter with array variable
  • Expecting original numbers printed
  • Thinking block parameter is undefined
4.

Find the error in this Ruby code:

fruits = ['apple', 'banana']
fruits.each do fruit|
  puts fruit
end
medium
A. Block parameter should be in parentheses
B. Missing closing | after block parameter
C. No error, code runs fine
D. Missing opening | before block parameter

Solution

  1. Step 1: Check block parameter syntax

    Block parameters must be enclosed inside vertical bars | |. Here, only the closing bar is present.
  2. Step 2: Identify missing part

    The opening | before fruit is missing, causing a syntax error.
  3. Final Answer:

    Missing opening | before block parameter -> Option D
  4. Quick Check:

    Block parameters need both | | [OK]
Hint: Block parameters always need both | at start and end [OK]
Common Mistakes:
  • Forgetting the opening |
  • Using parentheses instead of | |
  • Assuming code runs without |
5.

Given this code, what will be the output?

pairs = [[1, 2], [3, 4], [5, 6]]
pairs.each do |a, b|
  puts a + b
end
hard
A. [1, 2] [3, 4] [5, 6]
B. 3 7 11
C. Error: wrong number of block parameters
D. 1 3 5

Solution

  1. Step 1: Understand multiple block parameters

    The block parameters a and b receive each inner array's two elements separately.
  2. Step 2: Calculate sum for each pair

    For each pair, the code prints the sum: 1+2=3, 3+4=7, 5+6=11.
  3. Final Answer:

    3 7 11 -> Option B
  4. Quick Check:

    Sum of pairs = 3,7,11 [OK]
Hint: Use multiple block parameters to unpack arrays inside each [OK]
Common Mistakes:
  • Expecting array printed instead of sum
  • Thinking block parameters can't unpack arrays
  • Assuming syntax error with two parameters
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard