Weight-based algorithm