Problem: Reverse the bits of a -bit unsigned integer.
function reverseBits(n):
result = 0
for i from 0 to 31:
result = (result << 1) | (n & 1)
n = n >> 1
return result
Optimization: Process in chunks. Precompute reversed bytes, combine:
reversed = (table[n & 0xFF] << 24) |
(table[(n >> 8) & 0xFF] << 16) |
(table[(n >> 16) & 0xFF] << 8) |
(table[n >> 24])
Time: with lookup table. Space: or for table.