private static void DoMerge(Object[] numbers, int left, int mid, int right,
			int sortColumn) {
		int i, left_end, num_elements, tmp_pos;
		left_end = (mid - 1);
		tmp_pos = left;
		num_elements = (right - left + 1);
		Object[] temp = new Object[numbers.length];

		while ((left <= left_end) && (mid <= right)) {

			if (((Number) (((Object[]) numbers[left])[sortColumn])).intValue() <= ((Number) (((Object[]) numbers[mid])[sortColumn]))
					.intValue())
				temp[tmp_pos++] = numbers[left++];
			else
				temp[tmp_pos++] = numbers[mid++];
		}
		while (left <= left_end)
			temp[tmp_pos++] = numbers[left++];
		while (mid <= right)
			temp[tmp_pos++] = numbers[mid++];
		for (i = 0; i < num_elements; i++) {
			numbers[right] = temp[right];
			right--;
		}
	}