Interaction-Based Load Balancing in N-body Simulations