public void execute() {
		
	long startTime = 0;
	long endTime = 0;
	LinkedList<Integer> res = null;
	
	//Pre-executions
	alg.searchForPattern(searchString, sourceString);
	alg.searchForPattern(searchString, sourceString);
	
	for (int i = 1; i <= numberOfExecutions; i++) {
	
		startTime = System.nanoTime(); // get current time
		
		res = null;
		res = alg.searchForPattern(searchString, sourceString);
		
		endTime = System.nanoTime(); // get end time
		
		if (this.showResult) {
		
			long duration = (endTime - startTime);
			double durationInSecRounded = Helper.round(duration/Helper.NANOSEC_TO_SEC_FACTOR, 4);
			
			System.out.println(i + ": in " + duration + " nano-sec = " + durationInSecRounded + " sec \n");
		}
	}	
	
	System.out.println("\n" + "searchString occurs at indices " + res
							+ "\n" + "number of comparisons per calculation: " + (alg.getComparisons()/(this.numberOfExecutions + 2)));  //number of executions + preexecutions
}