A Systolic Architecture for Sorting an Arbitrary Number of Elements