|
Written by Administrator
|
|
Il consiste en la recherche soit du plus grand élément (ou le plus petit) que l'on va replacer à sa position finale c'est-à-dire en dernière position (ou en première), puis on recherche le second plus grand élément (ou le second plus petit) que l'on va replacer également à sa position finale c'est-à-dire en avant-dernière position (ou en seconde), etc., jusqu'à ce que le tableau soit entièrement trié. En Pascal : procedure TriSelection(n : integer ; var t : tab); var i, j, min, tmp : integer; begin for i:=1 to n-1 do begin
min := i;
for j:=i+1 to n do if (t[j] < t[min]) then min:=j;
if (i <> min) then begin
tmp := t[i]; t[i] := t[min]; t[min] := tmp; end; end; end; En C: typedef int tab_entiers[MAX]; void selection(tab_entiers t) { int i, min, j , x; for(i = 0 ; i < MAX - 1 ; i++) { min = i; for(j = i+1 ; j < MAX ; j++) if(t[j] < t[min]) min = j; if(min != i) { x = t[i]; t[i] = t[min]; t[min] = x; } } }
|