Exercice 1: Soit le programme de tri par bulles, qui trie un tableau d’entiers par ordre croissant.
Procedure TriBulle(var A : array[1..n] of integer);
{TriBulle trie le tableau par ordre croissant}
var i,j, temp : integer;
begin
(1) for i :=1 to n-1 do
(2) for j:=n downto i+1 do
(3) if A[j-1]>A[j] then
begin
{échanger A[j-1] et A[j]}
(4) temp := A[j-1];
(5) A[j-1]:=A[j];
(6) A[j]:=temp;
end
end;{TriBulle}
Donner la complexité algorithmique.
Exercice 2 :
program r ;
var r, d, n :integer ;
begin
read(n) ; d :=1 ;r :=0 ;
while d*d <=n do d :=d*2 ;
while d>1 do
begin
d :=d div 2 ;
if(r + d)*(r + d)<=n then
r :=r + d ;
end ;
writeln(r) ;
end. (* fin du programme r *)
Donner la complexité algorithmique.
Exercice 3 :
Exercice 4
Exercice 5 :
1. Ecrivez un algorithme qui affiche les chiffres qui composent un nombre donné en entrée
2. Donner la complexité algorithmique.
Un carré magique est un tableau à deux dimensions de même taille, tel que les sommes des nombres de
chaque ligne de chaque colonne et chaque diagonale principale sont identiques. Par exemple, le tableau
T suivant est un carré magique:
4 9 2
3 5 7
8 1 6
1. Ecrivez un algorithme qui vérifie si un tableau T de N × N cases est un carré magique ou pas.
2. Quelle est la complexité asymptotique de votre algorithme ?
3. A quelle classe appartient ce problème ?
-2-