Un moyen efficace de compter le nombre de swaps à insérer trie un tableau d'entiers dans un ordre croissant

Donné un tableau de valeurs de longueur n, il est un moyen de compter le nombre de swaps, qui serait effectuée par l'insertion de tri pour trier ce tableau dans le temps de mieux que O(n2)?

Par exemple :

arr[]={2 ,1, 3, 1, 2};  //Answer is 4.

Algorithme:

for i <- 2 to N

    j <- i

 while j > 1 and a[j] < a[j - 1]

       swap a[j] and a[j - 1]  //I want to count this   swaps?

       j <- j - 1

source d'informationauteur Anil Kumar Arya