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 de dos en dos. 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 continuar con el 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 desordenado es [3, 9, 7, 4], realizará los siguientes pasos (nota: 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 comienza de nuevo 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 necesarios 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