A ordenação de Mona

Mona criou um método para ordenar uma lista em ordem crescente.

Começando pelo lado esquerdo da lista, ela compara os números em pares. Se o primeiro par estiver na ordem [smaller number, larger number], ela continua. Se o primeiro par estiver na ordem [larger number, smaller number], ela troca os dois inteiros antes de continuar com o próximo par. Ela repete esse processo até chegar ao final da lista.

Depois, ela volta ao início da lista e repete esse processo até que a lista inteira esteja ordenada.

Se a lista desordenada for: [3, 9, 7, 4], ela executará as seguintes etapas (observe que trocas se refere aqui ao total acumulado):

  1. Ela começa com o primeiro par.
  2. [3, 9] está na ordem, então ela continua. Lista: [3, 9, 7, 4]. Trocas: 0.
  3. [9, 7] não está na ordem. Troque os elementos. Lista: [3, 7, 9, 4]. Trocas: 1
  4. [9, 4] não está na ordem. Troque os elementos. Lista: [3, 7, 4, 9]. Trocas: 2
  5. Verifique se a lista está ordenada. Ela não está, então recomece pelo primeiro par.
  6. [3, 7] está na ordem, então ela continua. Lista: [3, 7, 4, 9]. Trocas: 2
  7. [7, 4] não está na ordem. Troque os elementos. Lista: [3, 4, 7, 9]. Trocas: 3.
  8. [7, 9] está na ordem, então ela continua. Lista: [3, 4, 7, 9]. Trocas: 3.
  9. Verifique se a lista está ordenada. Ela está. Fim.

Ordenar a lista [3, 9, 7, 4] leva 3 trocas. Escreva uma função que receba uma lista desordenada e retorne quantas trocas são necessárias para ordenar a lista de acordo com o algoritmo de Mona.

Exemplos

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

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

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

Observações

N/A