bonjour à tous, j'ai un algorithme sous les yeux et j'aimerais bien savoir quel est sont rôle.
l'algo en question est :
procédure A_TROUVER(v_tab[TAILLE] : entier, v_tab[TAILLE] : entier )
début
Avec i, k : entiers
j : booléen
k <-- TAILLE/2
répeter
j <-- FAUX
pour i de 1 à TAILLE - k faire
si v_tab[i] > v_tab[i+k] alors
echanger(v_tab[i], v_tab[i+k])
j <-- VRAI
finsi
finfaire
si ( non j ) alors
k <-- k/2
finsi
tant que k != 0
fin
de plus je ne comprend pas pourquoi il y a deux tableaux identiques en paramètres.
Merci pour vos réponses.
Salut, a première vu cela semble être un algo de tri (pour en être sur teste sur un jeu d'essai), mais il n'est pas tout à fait juste car les paramètre déclarer dans le prototype de la procédure ne sont pas déclarés. De même, les variables se déclarent avant le début.
Bonsoir.
Je ne crois pas qu'on puisse préciser la taille du tableau dans les paramètres; généralement des crochets vides suffisent.
Il doit exister une fonction taille(tableau) qui retourne le nombre d'éléments du tableau.
Exemple.
Ranger les lettres de SYNCHROMATIQUE (plus long mot français ayant des lettres différentes, par ordre alphabétique). On pourrait remplacer les lettres par les nombres correspondants : A = 1, B = 2, etc.
k = 7 : M A N C H R E S Y T I Q U O (aucune place n'est visitée deux fois).
comme les deux lettres de même place dans chaque moitié sont par ordre alphabétique, c'est terminé pour k = 7 et on passe à k = 3
k = 3 : C A N M H R E S Y T I Q U O (après le passage de i de 1 à 3)
C A N E H R M S Y T I Q U O (après le passage de i de 4 à 6)
C A N E H R M I Q T S Y U O (après le passage de i de 7 à 9)
C A N E H R M I Q T O Y U S (après le passage de i de 10 à 11)
on constate qu'il n'y aura pas d'échange au deuxième tour et on passe à K = 1
quand k = 1, si une lettre rompt l'ordre alphabétique, la lettre qui la précède saute vers la droite tout le bloc de lettres qui la précèdent dans l'ordre alphabétique; et on continue à partir de la lettre qui suit la nouvelle place de celle qui a sauté
Au premier tour, on a successivement :
A C N E H R M S Y T I Q U O (saut de C)
A C E H N R M S Y T I Q U O (saut de N)
A C E H N M R S Y T I Q U O (saut de R)
A C E H N M R S T I Q U O Y (saut de Y)
Au deuxième tour :
A C E H M N R S T I Q U O Y (saut de N)
A C E H M N R S I Q T U O Y (saut de T)
A C E H M N R S I Q T O U Y (saut de U)
Au troisième tour :
A C E H M N R I Q S T O U Y (saut de S)
A C E H M N R I Q S O T U Y (saut de T)
Au quatrième tour :
A C E H M N I Q R S O T U Y (saut de R)
A C E H M N I Q R O S T U Y (saut de S)
Au cinquième tour :
A C E H M I N Q R S O T U Y (saut de N)
A C E H M I N Q R O S T U Y (saut de S)
Au sixième tour :
A C E H I M N Q R O S T U Y (saut de M)
A C E H I M N Q O R S T U Y (saut de R)
Au septième tour :
A C E H I M N O Q R S T U Y (saut de Q)
et tout est classé
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :