Step 1: Calculate total sum = 1 + 5 + 11 + 5 = 22, check if even
Total sum = 22 (even), target subset sum = 11
Why: If total sum is odd, equal partition is impossible
Step 2: Initialize boolean array dp of size 12 (0 to 11) with dp[0] = true
dp = [true, false, false, false, false, false, false, false, false, false, false, false]
Why: dp[j] means if sum j is possible with some subset
Step 3: Process number 1: update dp for sums from 11 down to 1
dp after 1: [true, true, false, false, false, false, false, false, false, false, false, false]
Why: We can make sum 1 by including number 1
Step 4: Process number 5: update dp for sums from 11 down to 5
dp after 5: [true, true, false, false, false, true, true, false, false, false, false, false]
Why: We can make sums 5 and 6 by including number 5
Step 5: Process number 11: update dp for sums from 11 down to 11
dp after 11: [true, true, false, false, false, true, true, false, false, false, false, true]
Why: We can make sum 11 by including number 11
Step 6: Check dp[11], it is true, so subset with sum 11 exists
dp[11] = true
Why: Found subset that sums to half total, partition possible
Result: dp array shows dp[11] = true, so partition is possible