static void halfSort(final int[] a) { for (int i = 0; i < a.length / 2; i++) { var lowestIndex = -1; var lowestValue = -1; for (int j = i; j < a.length; j++) { if(lowestIndex == -1 || a[j] < a[lowestIndex]) { lowestIndex = j; lowestValue = a[j]; } } System.arraycopy(a, i, a, i+1, lowestIndex-i); a[i] = lowestValue; } }