Inversion dans un tableau

Fermé
c1119a - 21 nov. 2008 à 11:27
 c1119a - 21 nov. 2008 à 13:18
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]

3 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 nov. 2008 à 12:27
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?
0
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?
0
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
0
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
0
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)
0