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 como [smaller number, larger number], continúa. Si el primer par está ordenado como [larger number, smaller number], intercambia los dos enteros antes de pasar al siguiente par. Repite este proceso hasta llegar al final del arreglo.
Después, vuelve al inicio 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 Intercambios se refiere aquí al total acumulado de intercambios):
- Comienza con el primer par.
[3, 9]está en orden, así que continúa. Arreglo:[3, 9, 7, 4]. Intercambios:0.[9, 7]no está en orden. Intercambia. Arreglo:[3, 7, 9, 4]. Intercambios:1[9, 4]no está en orden. Intercambia. Arreglo:[3, 7, 4, 9]. Intercambios:2- Comprueba si el arreglo está ordenado. No lo está, así que vuelve a comenzar con el primer par.
[3, 7]está en orden, así que continúa. Arreglo:[3, 7, 4, 9]. Intercambios:2[7, 4]no está en orden. Intercambia. Arreglo:[3, 4, 7, 9]. Intercambios:3.[7, 9]está en orden, así que continúa. Arreglo:[3, 4, 7, 9]. Intercambios:3.- 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 que se necesitan para ordenar el arreglo según el algoritmo de Mona.
Ejemplos
numberOfSwaps([5, 4, 3]) ➞ 3
numberOfSwaps([1, 3, 4, 5]) ➞ 0
numberOfSwaps([5, 4, 3, 2]) ➞ 6Notas
N/A