OII 2010-12-02 – 10

Data una lista di numeri diversi, per esempio [1,5,2,4], è possibile alterare l’ordine dei suoi elementi scambiando di posto due cifre adiacenti.
Con mosse successive è quindi possibile spostare gli elementi della lista in modo da ottenere la permutazione ordinata crescente; in questo esempio, l’ordinamento si ottiene con due mosse:

  • [1,5,2,4] → [1,2,5,4] → [1,2,4,5].

La lista [2,5,4,3] può essere ordinata con tre mosse:

  • [2,5,4,3] → [2,4,5,3] → [2,4,3,5] → [2,3,4,5].

Date le seguenti liste

  • L1 = [4,9,2,8,3,7],
  • L2 = [2,1,4,3,6,5,9,7,10,8]

Trovare il numero minimo di mosse (N1 e N2 rispettivamente per L1 e L2) necessario per ottenere le corrispondenti permutazioni ordinate crescenti.


Soluzione: 8, 6.


A ogni passo sposto il numero più grande con un certo numero di mosse

L1

Prima Dopo Numero
mosse
[4,9,2,8,3,7] [4,2,8,3,7,9] 4
[4,2,8,3,7,9] [4,2,3,7,8,9] 2
[4,2,3,7,8,9] [2,3,4,7,8,9] 2
8

L2

Prima Dopo Numero
mosse
[2,1,4,3,6,5,9,7,10,8] [2,1,4,3,6,5,9,7,8,10] 1
[2,1,4,3,6,5,9,7,8,10] [2,1,4,3,6,5,7,8,9,10] 2
[2,1,4,3,6,5,7,8,9,10] [2,1,4,3,5,6,7,8,9,10] 1
[2,1,4,3,5,6,7,8,9,10] [2,1,3,4,5,6,7,8,9,10] 1
[2,1,3,4,5,6,7,8,9,10] [1,2,3,4,5,6,7,8,9,10] 1
6