public int iterativeChop(int target, int[] dataSet) {
		boolean notFound = true;
		int result = -1;		
		int relativePosition = 0;

		if(dataSet.length == 0) {
			return result;
		}
		
		while(notFound) {
			int arrayLength = dataSet.length;
			int arrayMiddle = arrayLength/2;
			int middleValue = dataSet[arrayMiddle];
			
			if(arrayLength == 1 && middleValue != target) {
				return result;
			}
			
			if (middleValue > target) {
				int choppedLength = arrayMiddle;
				dataSet = copyArray(dataSet, 0, choppedLength);
				
			} else if (middleValue < target) {
				int choppedLength = arrayLength-arrayMiddle;
				relativePosition += arrayLength - choppedLength;
				dataSet = copyArray(dataSet, arrayMiddle, choppedLength);
			}
			
			if (middleValue == target) {
				notFound = false;
				result = arrayMiddle + relativePosition;
			}
		}
		
		return result;
	}