private static XYDataset createDataset()
	{
		XYSeries actual = new XYSeries("Actual number of accesses");
		XYSeries upperBound = new XYSeries(
				"Upper Bound on the number of accesses  - 6N * lg(N)");

		for (int k = 1; k <= 512; k++)
		{
			Double a[] = new Double[k];
			for (int i = 0; i < k; i++)
				a[i] = StdRandom.uniform();
			int numAccess = sort(a);
			assert SortHelper.isSorted(a);
			actual.add(k, numAccess);

			// upper bound on the number of accesses is 6N lg(N)
			upperBound.add(
					k,
					Math.floor(6 * a.length * Math.log((double) a.length)
							/ Math.log(2.0)));
		}

		XYSeriesCollection dataset = new XYSeriesCollection();
		dataset.addSeries(actual);
		dataset.addSeries(upperBound);
		return dataset;
	}