3. +
Partie 1
Structures de données
Sous-programmes
4. +
Structures de données
Tutilisateurs : Un tableau de notes
Ttous_les_utilisateurs: Un tableau de tableau
Pour :
Accès direct
Indice = identifiant
Structure ordonnée
Doublons
Contre :
Surdimensionnement
12. +
Partie 2
Structures de données
Sous programmes
13. +
Structures de données
Tsequence : Liste de Entier
Ttous : Liste de Tsequence
Pour :
Ordonnée
Doublons
Pas de taille fixée
Exemple en python
14. +
L’arbre n-aire
TarbreN : ARBRE n-aire de Ttab. Ttab est un TABLEAU (1, 2) de Typelt (ENTIER)
•Fonction REMPLIR(arbre, allusers):
• Boucle du la fonction INSERTION (seq, arbre)
•Uniquement avec les séquences-types
Exemple
[1,2]
[1,2]
[1,4]
[10,9,8]
[10,9,8]
…
Pour :
Structure ordonnée, avec doublons
Accès direct et facile
Contre:
Taille fixée :
Obligation de surdimensionner
Variable
minMoyenneDistance, utilisateurMoyen, moy
i : ENTIER
Debut
minMoyenneDistance CalcDistMoyenne(allusers[1],allusers)
utilisateurMoyen 1
POUR i DE 2 A N FAIRE
MoyCalcDistMoyenne(allusers[i],allusers)
Si moy<minMoyenneDistance ALORS
utilisateurMoyen 1
FIN SI
FPOUR
RETOURNER (utilisateurMoyen)
FIN SP
Trois boucles :
De 1 à N : on fixe un utilisateur x
De i+1 à N : on fixe un deuxième utilisateur
SI Commun(utilisateur x, utilisateur y)
De i+2 à N : on fixe un troisième utilisateur
SI Commun(y, z) ET Commun(x, z)
alors distMoy = (CalcDistMoyenne(x,y)+ CalcDistMoyenne(y,z) + CalcDistMoyenne(x,z)) / 3
On ajoute le triplet dans listeTriplet ainsi que la distance moyenne dans listDistMoy
Cas simple : profondeur 1
Pour tous les elements de users :
Recherche des voisins direct en éliminant l’élément lui-même et les utilisateursDifférents (ceux qui ont déjà été voisins)
Voisins direct : Commun et distance < s
Stockage des voisins dans un ensemble : ensVoisins
Stockage dans une liste listeResultat de ensVoisins et utilisateurDifferents
Retourner listeResultat
Stockage dans listeResultat de l’appel récursif de Voisinage
Voisinage (users, allusers, (profondeur -1), anciensVoisins)
anciens TETE(listeResultat)
utilisateurDifférentsTETE(RESTE(listeResultat))
Retourne l’appel recursif de Voisinage
Voisinage(anciensVoisins, allusers, 1, utilisateursDifférents)