| 1 | Sort array | - | - | - | Array sorted | [-2, -1, 0, 0, 1, 2] |
| 2 | Fix i=0 | i=0 | - | - | - | i points to -2 |
| 3 | Fix j=1 | i=0, j=1 | - | - | - | j points to -1 |
| 4 | Set left=2, right=5 | i=0, j=1, left=2, right=5 | - | - | - | left=0, right=2 |
| 5 | Calculate sum | i=0, j=1, left=2, right=5 | -2 + -1 + 0 + 2 = -1 | Sum < target, move left++ | [] | Array unchanged |
| 6 | Move left to 3 | i=0, j=1, left=3, right=5 | - | - | - | left=0 (index 3) |
| 7 | Calculate sum | i=0, j=1, left=3, right=5 | -2 + -1 + 0 + 2 = -1 | Sum < target, move left++ | [] | Array unchanged |
| 8 | Move left to 4 | i=0, j=1, left=4, right=5 | - | - | - | left=1 (index 4) |
| 9 | Calculate sum | i=0, j=1, left=4, right=5 | -2 + -1 + 1 + 2 = 0 | Sum == target, store quadruplet | [[-2, -1, 1, 2]] | Array unchanged |
| 10 | Move left++ and right-- skipping duplicates | i=0, j=1, left=5, right=4 | - | - | - | left > right, end while |
| 11 | Increment j to 2 | i=0, j=2 | - | - | - | j points to 0 |
| 12 | Set left=3, right=5 | i=0, j=2, left=3, right=5 | - | - | - | left=0 (index 3), right=2 |
| 13 | Calculate sum | i=0, j=2, left=3, right=5 | -2 + 0 + 0 + 2 = 0 | Sum == target, store quadruplet | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | Array unchanged |
| 14 | Move left++ and right-- skipping duplicates | i=0, j=2, left=4, right=4 | - | - | - | left >= right, end while |
| 15 | Increment j to 3 | i=0, j=3 | - | - | - | j points to 0 (duplicate), skip to next |
| 16 | Increment i to 1 | i=1 | - | - | - | i points to -1 |
| 17 | Fix j=2 | i=1, j=2 | - | - | - | j points to 0 |
| 18 | Set left=3, right=5 | i=1, j=2, left=3, right=5 | - | - | - | left=0 (index 3), right=2 |
| 19 | Calculate sum | i=1, j=2, left=3, right=5 | -1 + 0 + 0 + 2 = 1 | Sum > target, move right-- | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | Array unchanged |
| 20 | Move right to 4 | i=1, j=2, left=3, right=4 | - | - | - | right=1 (index 4) |
| 21 | Calculate sum | i=1, j=2, left=3, right=4 | -1 + 0 + 0 + 1 = 0 | Sum == target, store quadruplet | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | Array unchanged |
| 22 | Move left++ and right-- skipping duplicates | i=1, j=2, left=4, right=3 | - | - | - | left >= right, end while |
| 23 | Increment j to 3 | i=1, j=3 | - | - | - | j points to 0 (duplicate), skip |
| 24 | Increment i to 2 | i=2 | - | - | - | i points to 0 |
| 25 | Fix j=3 | i=2, j=3 | - | - | - | j points to 0 (duplicate), skip |
| 26 | Increment i to 3 | i=3 | - | - | - | i points to 0 (duplicate), skip |
| 27 | End loop | - | - | - | - | All quadruplets found |
| 28 | Return result | - | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | Final quadruplets |