El ordenamiento de Mona

Mona ha creado un método para ordenar un arreglo en orden ascendente.

Comenzando por la izquierda del arreglo, compara los números de dos en dos. Si el primer par está ordenado [número menor, número mayor], continúa. Si el primer par está ordenado [número mayor, número menor], intercambia los dos enteros antes de pasar al siguiente par. Repite este proceso hasta llegar al final del arreglo.

Luego, vuelve al principio del arreglo y repite este proceso hasta que todo el arreglo esté ordenado.

Si el arreglo sin ordenar es [3, 9, 7, 4], realizará los siguientes pasos (ten en cuenta que Intercambios se refiere aquí al total acumulado de intercambios):

  1. Comienza con el primer par.
  2. [3, 9] está ordenado; continúa. Arreglo: [3, 9, 7, 4]. Intercambios: 0.
  3. [9, 7] no está ordenado. Intercambia los números. Arreglo: [3, 7, 9, 4]. Intercambios: 1
  4. [9, 4] no está ordenado. Intercambia los números. Arreglo: [3, 7, 4, 9]. Intercambios: 2
  5. Comprueba si el arreglo está ordenado. No lo está, así que vuelve a comenzar con el primer par.
  6. [3, 7] está ordenado; continúa. Arreglo: [3, 7, 4, 9]. Intercambios: 2
  7. [7, 4] no está ordenado. Intercambia los números. Arreglo: [3, 4, 7, 9]. Intercambios: 3.
  8. [7, 9] está ordenado; continúa. Arreglo: [3, 4, 7, 9]. Intercambios: 3.
  9. Comprueba si el arreglo está ordenado. Sí lo está. Fin.

Ordenar el arreglo [3, 9, 7, 4] requiere 3 intercambios. Escribe una función que reciba un arreglo sin ordenar y devuelva la cantidad de intercambios necesarios para ordenarlo según el algoritmo de Mona.

Ejemplos

number_of_swaps([5, 4, 3]) ➞ 3

number_of_swaps([1, 3, 4, 5]) ➞ 0

number_of_swaps([5, 4, 3, 2]) ➞ 6

Notas

N/A