El ordenamiento de Mona

Mona ha creado un método para ordenar un arreglo de forma ascendente.

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

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

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

  1. Comienza con el primer par.
  2. [3, 9] está en orden, así que continúa. Arreglo: [3, 9, 7, 4]. Intercambios: 0.
  3. [9, 7] no está en orden. Intercambia los elementos. Arreglo: [3, 7, 9, 4]. Intercambios: 1
  4. [9, 4] no está en orden. Intercambia los elementos. 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á en orden, así que continúa. Arreglo: [3, 7, 4, 9]. Intercambios: 2
  7. [7, 4] no está en orden. Intercambia los elementos. Arreglo: [3, 4, 7, 9]. Intercambios: 3.
  8. [7, 9] está en orden, así que continúa. Arreglo: [3, 4, 7, 9]. Intercambios: 3.
  9. Comprueba si el arreglo está ordenado. Lo está. Fin.

Ordenar el arreglo [3, 9, 7, 4] le toma 3 intercambios. Escribe una función que reciba un arreglo desordenado y devuelva la cantidad de intercambios necesarios para ordenar el arreglo 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