Salut,
Quelqu'un me propose une idée ou s'il y a une faute la corrige svp, je cherche pour chaque client ses k voisins dans l'ordre croissant des distances. Voici le code :
mais voilà ce qu'il maffiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 for (int s = 0; s < n; s++) { cout << "pour le client " << s << " " << "ses voisins dans l'ordre croissant des distances : " << endl; for (int b = 1; b < n; b++) { for (int w = 0; w < n; w++) if (w != s) //il ne faut pas comparer le client avec lui meme { for (int i = 1; i <= b; i++) if (vect[s][i] != w) // il faut que w n'existe pas dans les voisins déja trouvés , vect stocke pour le client s ts ses voisins possibles for (int m = w + 1; m < n; m++) if (s != m) for (int i = 1; i <= b; i++) if (vect[s][i] != m) if (dis[s][w] < dis[s][m]) { if (dis[s][w] < distance) { voi = w; //voi: variable qui stocke a chaque comparaison en parcourant ts les autres clients le meilleur trouvé distance = dis[s][w]; } } //distance variable initialisé a un trés grand nombre et dis[s][w] distance entre deux clients else if (dis[s][w] > dis[s][m]) { if (dis[s][m] < distance) { voi = m; distance = dis[s][m]; } } vect[s][b] = voi; } cout << vect[s][b] << endl; } }
Partager