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

Algorithmes et structures de données Discussion :

Tri d'un tableau par un algorithme


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Tri d'un tableau par un algorithme
    Bonjour,

    J'ai ce petit exercice à faire et je bloque à un moment :

    Un tableau à une dimension contenant 20 éléments
    (entiers) n’est pas trié et possède des éléments
    éventuellement en double.
    Réaliser un premier algorithme de tri sur place dans
    l’ordre croissant, puis un second algorithme pour passer
    au tri inverse à partir d’un tri croissant ou décroissant.

    Je propose ce qui suit, le probleme, c'est que je ne sais pas s'il serait plus judicieux de faire appel à une fonction lorsque je test l'ordre de rangement de mon tableau, ou si je doit réécrire le code ?

    A moins que je me plante complètement et que ce ne soit pas la procédure à suivre...
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    VAR 
        TABLEAU : data[1..20] : ENTIER	//Ce tableau contiendra les valeurs à classer
      TABLEAU :suite[1..6] : ENTIER		//Ce tableau nous servira d'étape pour classer nos nombres
      Nb_elements : ENTIER
      Inserer <-- VRAI
      Croissant <-- FAUX				// Ces deux variable vous nous servir pour la 2ème partie, afin d'itentifier l'ordre de classification du tableau
      Décroissant <-- FAUX
     
     
    DEBUT
      Suite[1] <-- data [1]
      Nb_elements <--1 // nombre d’elements dans suite
     
      POUR (i<--1 : ENTIER A 20 PAS DE 1)
        	data[i]<-- ALEATOIRE(20)
      FINPOUR  
     
      POUR (i <-- 2 : ENTIER A 20 PAS DE 1)
      FAIRE
         POUR (j <--1 : ENTIER A nb_elements PAS DE 1 )
         FAIRE 
             SI (Data[i] < suite[j])
             ALORS 
              // je dois l’insérer
              // je décale tous les éléments à partir du rang j 
              POUR (k <-- nb_elements +1 : ENTIER A j+1 PAS -1)
              FAIRE
                  Suite[k+1] <-- suite [k]
              FINPOUR
                  nb_elements <-- nb_elements +1
              // j’insere l’element
              Suite[j] <-- data[i]         
              // je sors de ma boucle
              J <-- nb_elements +1   
              Inserer <-- VRAI 
             FINSI
         FINPOUR
         SI (inserer = FAUX) 
         ALORS 
              suite[nb_elements] <-- data [i]
              nb_elements <-- nb_elements + 1
         FINSI
      FINPOUR
     
      // On va maintenant trier par ordre décroissant ou croissant, on suppose que le tableau est déjà trié
     
      POUR (i<--1 : ENTIER A 20 PAS DE 1)
      	SI (data[i] < data[i+1])
      	ALORS
      		Croissant <-- VRAI
      	FINSI
      	SINON
      	SI (data[i] > data[i+1])
      	ALORS
      		Decroissant <-- VRAI
      	FINSI
      FINPOUR
     
     *****JE BLOQUE ICI*** 
     
     
    FIN

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    c'est que je ne sais pas s'il serait plus judicieux de faire appel à une fonction
    A partir du moment où tu te pose la question, c'est qu'il y a de fortes chances que tu en ais besoin. De plus, tu travailles en algorithmique tu n'as donc que faire du coût éventuel d'une fonction.

    Mais attention, trop de fonctions tue les fonctions. Ce qu'il faut, c'est toujours regrouper dans une fonction, une liste d'opération atomiques. (par ex : teste que le tableau est trié, échange deux éléments, ...)

Discussions similaires

  1. Tri d'un tableau par ordre croissant
    Par goaks dans le forum Algorithmes et structures de données
    Réponses: 46
    Dernier message: 29/06/2007, 16h41
  2. Tri d'un tableau par ordre alphabétique
    Par arouze dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/04/2007, 14h41
  3. Tri de tableau par pointeurs
    Par colocolo dans le forum Pascal
    Réponses: 9
    Dernier message: 19/02/2007, 21h02
  4. tri d'index de tableau par rapport au contenu
    Par parisien dans le forum C
    Réponses: 7
    Dernier message: 13/02/2006, 23h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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