Best-Fit Decreasing

    Complexity O(n^2)

def bfd(items, targets, **kwargs):
    """Best-Fit Decreasing

    Complexity O(n^2)
    """
    sizes = zip(items, weight(items, **kwargs))
    sizes = sorted(sizes, key=operator.itemgetter(1), reverse=True)
    items = map(operator.itemgetter(0), sizes)
    return bf(items, targets, **kwargs)