array c#
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

array c#



  1. #1
    invite754f3790

    array c#


    ------

    Salut à tous !

    J'ai voulu changer un code c# qui marchait très bien et ça ne marche plus et je ne comprends pas pourquoi les deux codes ne renvoient pas toujours le même résultat...
    Le but est de trouver dans un int[] A l'indice du premier élément supérieur à un entier k, avec k inférieur à A.Max().

    Cas 1 : Le code bon

    Code:
    int n = -1;
    int j = 0;
    while (j < A.Count() && n < 0)
    {
       if (A[j] >= k)
          n = j;
       j++;
    }
    return n;
    Cas 2 : Le code qui se trompe parfois, mais pourquoi ?

    Code:
    int n = -1;
    int j = k;
    while (A.Contains(j) == false)
       j++;
    n = Array.IndexOf(A, j);
    return n;

    -----

  2. #2
    kwariz

    Re : array c#

    Bonsoir,

    les deux codes ne font pas la même chose.
    Le premier renvoie l'indice du premier élément de A supérieur ou égal à k ou -1 si aucun élément n'est trouvé.
    Le second renvoie l'indice du premier plus petit élément de A supérieur ou égal à k ou -1 si aucun élément est trouvé.

    En gros avec un arraylist A={2,4,6,8,1,3,5,7,3,2,1}, k=3
    le premier algo va renvoyer 1 car A[1]=4 est le premier élément supérieur ou égal à 3
    le second va renvoyer 5 car A[5]=3 est le premier plus petit élément de A supérieur ou égal à 3

    Essaye de faire une trace sur mon exemple pour bien comprendre la différence.

  3. #3
    invite754f3790

    Re : array c#

    Ah oui exact ! Merci !!

  4. #4
    invite0f0afca1

    Re : array c#

    Salut,

    Mise à part la différence dont tu as la cause, le code 1 est nettement plus rapide que celui qui utilise "contains" (méthode qui parcours potentiellement la totalité du tableau à chaque invocation). Pour la forme ci-dessous, le code 1 poil plus rapide

    Code:
    int n = -1;
    int j = 0;
    while (j < A.Count())
    {
       if (A[j] >= k)
      {
          n = j;
          break;
      }
       j++;
    }
    return n;

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Array = Matrice ?
    Par invite264f71b9 dans le forum Physique
    Réponses: 7
    Dernier message: 22/06/2011, 08h38
  2. [Génétique] CGH array
    Par abeillee dans le forum Biologie
    Réponses: 0
    Dernier message: 22/11/2009, 16h18
  3. [Génétique] CGH-array
    Par DROITURE dans le forum Biologie
    Réponses: 10
    Dernier message: 10/07/2008, 14h30
  4. [Biologie Cellulaire] cgh array
    Par invite54c908a4 dans le forum Biologie
    Réponses: 1
    Dernier message: 08/06/2008, 19h07
  5. [Biologie Cellulaire] transgenic array
    Par invite50cb7a9c dans le forum Biologie
    Réponses: 0
    Dernier message: 04/12/2007, 17h24