Rearrange Related Data at Same Time
/* Sort A[0..m] into non-decreasing order, and rearrange B[0..m] similarly. */
public void sort(int[] A, int[] B, int m)
for ( int k = 0; k < m; k++ )
/* Given that A[0..k-1] is finished,
finish A[0..k]; rearrange B similarly. */
int minLoc; // subscript of
/* Set minLoc so A[minLoc] is
for (int i=k+1; i <= m; i++)
/* Exchange A[k] and A[minLoc] */
/* Exchange B[k] and B[minLoc] */