El ordenamiento de Mona
Mona ha creado un método para ordenar una lista de forma ascendente.
Comenzando por el lado izquierdo de la lista, compara los números de dos en dos. 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 continuar con el siguiente par. Repite este proceso hasta llegar al final de la lista.
Después, vuelve al principio de la lista y repite este proceso hasta que toda la lista esté ordenada.
Si la lista sin ordenar es: [3, 9, 7, 4], realizará los siguientes pasos (ten en cuenta que intercambios se refiere aquí al total acumulado):
- Comienza con el primer par.
[3, 9]está en orden, así que continúa. Lista:[3, 9, 7, 4]. Intercambios:0.[9, 7]no está en orden. Intercambia los elementos. Lista:[3, 7, 9, 4]. Intercambios:1[9, 4]no está en orden. Intercambia los elementos. Lista:[3, 7, 4, 9]. Intercambios:2- Comprueba si la lista está ordenada. No lo está, así que vuelve a comenzar con el primer par.
[3, 7]está en orden, así que continúa. Lista:[3, 7, 4, 9]. Intercambios:2[7, 4]no está en orden. Intercambia los elementos. Lista:[3, 4, 7, 9]. Intercambios:3.[7, 9]está en orden, así que continúa. Lista:[3, 4, 7, 9]. Intercambios:3.- Comprueba si la lista está ordenada. Lo está. Fin.
Ordenar la lista [3, 9, 7, 4] le toma 3 intercambios. Escribe una función que reciba una lista sin ordenar y devuelva cuántos intercambios se necesitan para ordenar la lista de acuerdo con 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]) ➞ 6Notas
N/A