• Aucun résultat trouvé

Tri par distribution.

N/A
N/A
Protected

Academic year: 2022

Partager "Tri par distribution."

Copied!
3
0
0

Texte intégral

(1)

Tri par distribution.

Cette méthode s’applique au tri de nombres et au tri alphabétique. Si nous considérons une suite de nombre à N chiffres (ou une suite de mots de N caractères), le tri s’effectue par distribution successive en considérons d’abord les chiffres des unités puis celui des dizaines des centaines, etc … A chaque passage nous formons des groupes de nombre suivant ce critère puis nous reconstituons à partir des ces groupes une nouvelle suite qui sera utilisée pour la distribution suivante. Le nombre de distributions est égale au nombre de chiffres du plus grand nombre.

Exemple.

Soit une suite de 12 nombres (d’au plus 3 chiffres) :

3 127 37 51 18 172 25 45 7 33 11 131

1 2 3 4 5 6 7 8 9 10 11 12

Pour la première distribution, nous considérons le chiffre des unités et nous obtenons les groupes suivants :

51 11 131 172 3 33 25 45 127 37 7 18

1 2 3 4 5 6 7 8 9 10 11 12

En faisant maintenant la distribution suivant le chiffre de dizaines, nous obtenons les groupes suivants :

03 07 11 18 25 127 131 33 37 45 51 172

1 2 3 4 5 6 7 8 9 10 11 12

Nous faisant la dernière distribution sur le chiffre des centaines :

003 007 011 018 025 033 037 045 051 127 131 172

1 2 3 4 5 6 7 8 9 10 11 12

Et nous obtenons finalement un tableau trié :

003 007 011 018 025 033 037 045 051 127 131 172

1 2 3 4 5 6 7 8 9 10 11 12

Ecrire un programme qui effectue le remplissage d’un tableau T par des entiers positifs d’au plus 3 chiffres (sachant que N entre 10..20) puis d’appliquer le principe de tri par distribution pour trier T et de l’afficher à la fin.

(2)

Correction.

program distribution;

uses wincrt;

type

tab=array[1..20] of integer;

cab=array[1..20] of string[10];

var c:cab;

t:tab;

i,n,j:integer;

procedure saisie (var t:tab; var n:integer);

begin repeat

writeln('Donner N entre 10..20 ');

readln(n);

until n in [5..20];

for i:=1 to n do repeat

writeln('Donner l''entier ', i,' entre 0..999 :');

readln(t[i]);

until (t[i]>=0) and (t[i]<=999);

end;

procedure affiche(t:tab; n:integer);

begin writeln;

for i:=1 to n do write(t[i], ' | ');

writeln;

end;

procedure affichec(c:cab; n:integer);

begin writeln;

for i:=1 to n do write(c[i], ' | ');

writeln;

end;

procedure tri (var t:tab; n :integer);

var

i,j,k,x:integer;

xx,aux:string;

cc:cab;

begin

(3)

for i:=1 to n do str(t[i],c[i]);

affichec(c,n);

for i:=1 to n do begin

c[i]:='000'+c[i];

c[i]:=copy(c[i],length(c[i])-2,3);

end;

affichec(c,n);

for j:=3 downto 1 do begin

k:=0;

for x:=0 to 9 do begin

str(x,xx);

for i:=1 to n do

if c[i][j]=xx[1] then begin

k:=k+1;

cc[k]:=c[i];

end;

end;

for i:=1 to n do c[i]:=cc[i];

end;

affichec(c,n);

end;

begin

saisie(t,n);

tri(t,n);

{affiche(t,n);}

end.

Références

Documents relatifs

C désigne la variable aléatoire égale au nombre de ballons crevés par Pierre après les trois lancers.. Reconnaître la loi

Quoi qu'il en soit, les deux tableaux démontrent que la loi de distribution des entreprises selon leur importance est sensiblement la même en France et en Alle- magne. En France,

3) Combiner : les deux sous-listes triées sont alors combinées de sorte à ce que la liste résultat soit triée... Il nécéssite de l’ordre de n log(n) comparaisons/affectations

L’après midi, Paul DEFFONTAINE, président du Cercle National du Recyclage et Vice-président de Lille Mé- tropole Communauté urbaine, animera les débats consacrés aux avancées

Considérons une source immobile, située un un point O de l’axe Ox, dans le référentiel R émettant des impulsions de manière périodique à une fréquence f.. Confondu avec la

La loi de Newton précise les échanges thermiques entre un solide (le tuyau) et un gaz ou un liquide en mouvement convectif : j conv = h.. Exprimer la résistance totale du tuyau

Lorsqu’une base de données est très volumineuse et non ordonnée, trouver une information dans cette base est très long et très ingrat.. En effet la seule solution est

Dans le tri rapide, après les 2 tris partiels, tous les éléments de la partie gauche sont inférieurs au pivot, alors que tous les éléments de la partie droite... naturelle, et