Inversion dans un tableau

Bonjour,
Est ce que quelqu'un aurait une idee d'algorithme en O(nlog(n)) pour compter le nombre d'inversion dans un tableau de n elements.

PS : une inversion c qd i<j et A[i]>A[j]
Configuration: Windows Vista
Firefox 3.0.4

3 réponses

  1. si le sens de votre question est le suivant :

    par exemple :

    SI T = 4, 5, 3, 1

    on a :

    4>3
    4>1
    5>3
    5>1
    3>1

    donc :

    le nombre des inversion est 5

    et l'algorithme est la suivante :

    nb-inversion =0
    pour i =1 à taille-T faire
    pour j = i+1 à taille-T faire
    si T(i)>T(j)
    nb-inversion =nb-inversion+1
    fin si
    fin pour
    fin pou

    c'est simple.......

    reponder moi
    1. Vous avez tout a fait compris le sens de la question et j'ai eu la meme idee pour l'algorithme. le pb c'est que l'algorithme est en n² et on en veut un en nlog(n)
  2. votre question n'est pas claire

    pour cherche le nombre des inversions possible d'un tableau (l'algorithme)

    il faut définire exactement qui ce que c'est une inversion
    1. Modérateur
      Salut,

      Effectivement j'aurais bien une idée, qui suivrait un peu la philosophie de la recherche dichotomique ou du tri dichotomique...
      C'est un exo que tu dois faire?
      1. En fait on a resolu en cours le pb avec un algorithme en n² et le prof a dit qu'il y en avait un en n*log(n) et sa fait 3 jours que je cherche et g toujours pas trouve. Avez vous une idee de grosso modo comment on pourait faire?