public static <E> void rightShift (E[] array, int shift) {
		if (shift > 0) {
			// save items displaced off of right end
			ArrayList<E> temp = new ArrayList<E>();
			int length = array.length;
			for (int i = length - shift ; i < length; i++) {
				temp.add(array[i]);
			}
			
			// copy in place
			for (int i = length - 1; i > shift - 1; i--) {
				array[i] = array[i - shift];
			}
			
			// copy displaced items to left end
			for (int i = 0; i < shift; i++) {
				array[i] = temp.get(i);
			}
		} else return;
	}