generic algorithm:
    partial_sort_copy
    partial_sum
    partition
    prev_permutation
    random_shuffle
    remove_copy
    remove_copy_if