El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de
ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado. Después, cuando hay k elementos ordenados de menor a mayor, se toma el elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose cuando se encuentra un elemento menor (todos los elementos mayores han sido desplazados una posición a la derecha). En este punto se inserta el elemento k+1 debiendo desplazarse los demás elementos.
fuente: wikipedia

public static void ordenporInsercion( Comparable [ ] com)
{
for( int i = 1; i < com.length; i++ )
{
Comparable tmp = com[ i ];
int j = i;

for( ; j > 0 && tmp.compareTo(com[ j – 1 ] ) < 0; j– )
com[ j ] = com[ j – 1 ];
com[ j ] = tmp;
}
}