Menu


1NSI

Les exercices python à connaître

premiers pas en Python
E1 boucles
E2 boucles
E3 boucles
E4 variables
E5 structure conditionnelle
E6 boucles
Un peu de binaire
E1 Nombre de bits
E2 Décalage binaire
E3 string
fonctions, str et listes
E1 Un compteur
E2 liste de nombres aléatoires
E3 moyenne d'une liste
E4 maximum d'une liste
E5 indices ou valeurs ?
Algorithmique partie 2
E1 Recherche séquentielle
E2 Recherche dichotomique
E3 Recherche dichotomique
E4 Nombre de 1
Les algorithmes de tri
E1 Est trié ?
E2 Tableau de 0 et de 1
E3 Inversion dans un tableau
tuples et dictionnaires
E1 Tuple
E2 Police, police
E3 Durées
E4 Anniversaires
E5 Message secret
E6 dictionnaire des occurences
E7 casser un digicode
Algorithmes gloutons
E1 Rendu de monnaie
E2 Livraisons à Manhattan

Inversion dans un tableau

On considère dans cet exercice des tableaux d'entiers.
Soit tab un tel tableau. On appelle inversion un couple d'indices distincts i et j tel que :
  • i est plus petit que j ;
  • tab[i] est strictement plus grand que tab[j].
Considérons par exemple dans le tableau tab = [7, 5, 9, 6]
Ce tableau compte 3 inversions :
  • pour les indices 0 et 1, car tab[0] (qui vaut 7) est strictement supérieur à tab[1] (qui vaut 5),
  • pour les indices 0 et 3, car tab[0] (qui vaut 7) est strictement supérieur à tab[3] (qui vaut 6),
  • pour les indices 2 et 3, car tab[2] (qui vaut 9) est strictement supérieur à tab[3] (qui vaut 6).
Compter les inversions dans un tableau permet de mesurer son « désordre » : si un tableau ne comporte aucune inversion, il est trié dans l'ordre croissant !
On demande d'écrire la fonction inversions qui prend en argument un tableau d'entiers et renvoie son nombre d'inversions.
On convient qu'un tableau vide ne compte aucune inversion.

source : https://codex.forge.apps.education.fr