public static void swap(
		final byte[] data, final int start, final int end,
		final byte[] otherData, final int otherStart
	) {
		for (int i = end - start; --i >= 0;) {
			final boolean temp = get(data, i + start);
			set(data, i + start, get(otherData, otherStart + i));
			set(otherData, otherStart + i, temp);
		}
	}
Swap a given range with a range of the same size with another array.

<pre>
               start            end
                 |               |
data:      +---+---+---+---+---+---+---+---+---+---+---+---+
             +---------------+
                             +---------------+
otherData: +---+---+---+---+---+---+---+---+---+---+---+---+
                             |
                         otherStart
</pre>

@param data the first byte array which is used for swapping.
@param start the start bit index of the {@code data} byte array,
       inclusively.
@param end the end bit index of the {@code data} byte array, exclusively.
@param otherData the other byte array to swap the elements with.
@param otherStart the start index of the {@code otherData} byte array.
@throws IndexOutOfBoundsException if {@code start > end} or
        if {@code start < 0 || end >= data.length*8 || otherStart < 0 ||
        otherStart + (end - start) >= otherData.length*8}
jenetics/src/main/java/io/jenetics/internal/util/Bits.java