codice:
	public static void ordinaCrescente(String testo[]) {
		int inf = 0;
		int sup = testo.length;
		if (sup < 2) return;
		mergeSort(testo, inf, sup);
	}
inf è sempre 0???

e poi, io non userei sup, ma testo.length e metterei uan condizione diversa nell'if in modo da non usare quel return abominevole


if (sup >= 2)
mergeSort(testo, inf, testo.length);

detto ciò potresrti farmi un esempio di come dovrebbee essere usato l'algoritmo? coswì lo provo a testare e vedo dov'è il problema.