IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

algorithmique(gestion de la memoire)detection des occurrences


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 129
    Par défaut algorithmique(gestion de la memoire)detection des occurrences
    Bonjour tt le monde,

    voici un extrait d'un algorithme tiré du livre "Algorithme java 5 " de l'exercice 1 du chapitre 3 pour la detection du meme nombre d'occurrences.


    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
     public void detecte_occurrences() {
      // --- boucle de détection des occurrences --- 
      for (int i=0;i<nbelements;i++)
      { // on vérifie que cet élément n'a pas déjà été traité 
        boolean trouve=false;
     
        for (int j=0; j<i;j++)
        {
     
     
          if (tab[i]==tab[j]) 
     
     
            trouve=true;
     
        } 
     
     
        if (!trouve)
        { // on comptabilise ses occurrences 
           int occurrences=1;
           for (int j=i+1; j<nbelements; j++) 
              if (tab[i]==tab[j])  occurrences++;
           System.out.printf("%5d : %3d occurrence(s)\n",tab[i],occurrences);
        }
      }
     
     }


    je voudrais savoir si mon raisonnement tient la route concernant les 3 boucles , par exemple en saisissant " 1 3 5 3 1 "

    Au début on va comparer la case 1(represente i) et la case 0(represente j) qui represente respectivement "3" et "1" si la valeur est false , on passe à la boucle suivante avec comme indice j=i+1 c-a-d j vaut l'indice 2 qui est de valeur 5 , ensuite on fait la comparaison entre i (indice en cours) et j comme dans le cas ci-dessous . on compare 3 et 5 ensuite 3 et 3 qui vaut true donc occurrence++ et enfin 3 et 1.
    on revient apres à la premiere boucle pour l'indice 2 (i=5) , 5 et 3 est false et on recomence de la meme maniere que le cas precedent.
    pour la valeur 1 = 2 occurences, j'ai raisonné de cette manière dans le cas ou je reprends ma boucle principale pour passer à l'indice (i) = 3 qui à la valeur 3 et que celle-ci à l'indice (j) de valeur 5 et qu'il me renvoi un false donc je passe à la 3 eme boucle qui commence avec j=i+1 avec la valeur 1 et que je compare ensuite à l'indice i qui avait stocké des le depart la valeur 1. donc occurrence++


    j'aimerai avoir votre avis concernant mon raisonement pour cet algorithme.
    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    L'algo fonctionne comme cela:

    La boucle principale (sur "i") indique la position actuelle du curseur.

    1. On regarde la valeur de la case sous le curseur

    2a. Si cette valeur existe dans une case AVANT le curseur, alors on a deja calculé le nombre d'occurence de cette valeur -> on ne fait rien.

    2b. Si cette valeur n'existe pas dans une case AVANT le curseur, alors on compte le nombre de fois qu'elle apparait APRES le curseur -> occurence = nombre+1 (le +1 c'est pour comptabilisé la valeur de la position actuelle).

    3. on avance le curseur et on retourne au 1.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Réponses: 11
    Dernier message: 27/03/2015, 12h51
  2. Detection des touches enfoncées par API
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 20/02/2006, 12h30
  3. [debutant]detection des contraintes
    Par jeff_13 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/02/2005, 11h01
  4. Detection des enfants avant leurs construction
    Par qqchose dans le forum C++
    Réponses: 10
    Dernier message: 12/02/2005, 17h39
  5. Réponses: 2
    Dernier message: 26/02/2003, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo