Insertion sort

L’insertion sort fa parte degli algoritmi di sorting.

Input Sequenza di valori .

Output Permutazione della sequenza tale che

title: Attenzione
Come costo computazionale calcoliamo i confronti eseguiti tra i valori di A.
  1. si parte con il primo elemento che è ordinato, essendo l’unico
  2. si prende l’elemento successivo, e si valuta con quello precedente. Se quello nuovo è maggiore allora si lascia dove è, se invece è minore si scambiano
  3. fino a che non è il primo della lista, o è maggiore del precedente, si continua a spostare verso la testa

InsertionSort(A, n):
	for j=1 to n-1:
		i := j
		while i > 0 AND A[i] < A[i-1] do
			inverti A[i-1] e A[i]
			i := i - 1
		j := j + 1

Quindi quanti confronti si fanno? Fissato un j, si fanno al più j confronti, quindi si ha:

asd_12