public static ArrayList<String> mergeSort(ArrayList<String> unsorted)
	{
		if (unsorted.size() <= 1)
			return unsorted;
		int mid = unsorted.size()/2;
		ArrayList<String> left = new ArrayList<String>();
		ArrayList<String> right = new ArrayList<String>();
		int m = 0;
		while (m < mid)
		{
			left.add(unsorted.get(m));
			m++;
		}
		while (m < unsorted.size())
		{
			right.add(unsorted.get(m));
			m++;
		}
		left = mergeSort(left);
		right = mergeSort(right);
		ArrayList<String> sorted = new ArrayList<String>();
		int l = 0;
		int r = 0;
		while (l < left.size() && r < right.size())
		{
			if (left.get(l).compareTo(right.get(r))<0)
			{
				sorted.add(left.get(l));
				l++;
			}
			else
			{
				sorted.add(right.get(r));
				r++;
			}
		}
		while (l < left.size())
		{
			sorted.add(left.get(l));
			l++;
		}
		while (r < right.size())
		{
			sorted.add(right.get(r));
			r++;
		}
		return sorted;
	}