public static <T extends Comparable<? super T>> int bestPivotStrategy(ArrayList<T> list, int start, int end){
		int middle = (end + start)/2;

		if(list.get(middle).compareTo(list.get(start)) < 0){
			normalSwap(list, start, middle);
		}
		if(list.get(end).compareTo(list.get(start)) < 0){
			normalSwap(list, start, end);
		}
		if(list.get(end).compareTo(list.get(middle)) < 0){
			normalSwap(list, middle, end);
		}

		return middle;

	}