Bonjour,

je cherche a faire un Algo pour ceci:

j'ai deux tableau d'entier A et B. A est l'ensemble des ids deja existants. B est l'ensemble des ids que l'on veux ajouter....
Je cherche une methode ou un algo permettant de recuppérer les éléments de B qui ne sont pas dans A.

Dans la methode que j'ai developpé ca ne marche pas pour certain cas... par exemple si B est plus grand que A....

Voici la methode que j'ai faite :
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
 
public static int[] NonIntersectIntArray(int[] a, int [] b)
   {DEBUG.ASSERT(a != null);
   	DEBUG.ASSERT(b != null);
   	Vector theResult = new Vector();
   	int[] naIdx = GetIndirectionVector(a);
   	int[] nbIdx = GetIndirectionVector(b);
   	int i=0,j=0;
   	while(true)
   	{
           	int	nIdx1 = naIdx[i];
            int nIdx2 = nbIdx[j];
 
            if (a[nIdx1] < b[nIdx2])
            {           	
            	i++;
            }
            else if (a[nIdx1] == b[nIdx2])
            {
            	i++;
            	j++; 
            }
            else if (a[nIdx1] > b[nIdx2])
            {
               theResult.add(new Integer(nIdx2));
               j++;
            }
 
            if ( i==a.length || j == b.length )
            	break;
 
 	}
 
   	return IntVectorToIntArray(theResult);
   }
Est ce que quelqun peut amélirer cette methode pour quel marche tout le temps ?