si buscas en google seguro sale.
Una forma es agregar ua flag, por ejemplo
int modificado = 0;
a la condicion del for de mas afuera le agregas esa flag, y al principio de cada bucle la seteas en 0
despues, en la parte donde intercambias valores, la seteas en 1
Eso hace que si en el ultimo recorrido no se hizo ningun intercambio se salga del bucle, ya que si no se hiso ningun intercambio el vector ya esta ordenado.
Saludos