public static Hashtable<Integer, Double> GrowthSort(int start, int range, int averageCount)
	{
		Random rnd = new Random();
		Hashtable<Integer, Double> NTable = new Hashtable<Integer, Double>();
		
		
		
		
		//Go through the range
		for (int n = start; n < range+1; n+=50000)
		{

			int warm = 0;
			while (warm < 10000)
			{ warm++; /*Let the thread warm up.*/ System.nanoTime(); }
			
			//Take the average algorithm time at range r
			long algorithmTime = 0;
			for (int a = 0; a < averageCount; a++)
			{
				//Timing
				ArrayBasedCollection<Integer> arr = new ArrayBasedCollection<Integer>();
				arr.addAll(permuteInts(n));

				long warmUptime = System.nanoTime();

				//Run the algorithm
				arr.toSortedList(new IntegerComparator());
				long sortTime = System.nanoTime();
				//OVERHEAD

				for(int i = 1; i<n; i++){
					int j;
					for(j = i-1; j>=0; j--);
				}

				long overHead = System.nanoTime();
				
				//Calculate time
				algorithmTime += (sortTime - warmUptime) - (overHead - sortTime);

			}
			System.out.println(n + "\t" + (double) algorithmTime/averageCount);
			NTable.put(n ,(double) (algorithmTime/averageCount));
		}
		
		return NTable;
	}