• Aucun résultat trouvé

slide-tri

N/A
N/A
Protected

Academic year: 2022

Partager "slide-tri"

Copied!
23
0
0

Texte intégral

(1)

Tri et Recherche

Philippe Langevin

IMATH, universit´e de Toulon

Avril 

Philippe Langevin (IMATH, universit´e de Toulon) Avril 1 / 20

(2)

R´ ef´ erences

Philippe Langevin (IMATH, universit´e de Toulon) Avril 2 / 20

(3)

tri s´ election

1 TRISELECTION( T : tableau de n objets )

2 variable i , j : indice

3 debut

4 i 1

5 tantque i <n faire

6 j i + 1

7 tantque j n faire

8 si T[i ] >T[j] alors

9 T[i ] ←→T[j]

10 fsi

11 ftq

12 ftq

13 fin Comparaisons ? Echanges ?´

Philippe Langevin (IMATH, universit´e de Toulon) Avril 3 / 20

(4)

comparaison vs ´ echange

Philippe Langevin (IMATH, universit´e de Toulon) Avril 4 / 20

(5)

tri ` a bulles

1 TRIBULLE( T : tableau de n objets )

2 variable i , j , d : indice

3 debut

4 d = n

5 tantque ( d >1 )

6 i 1

7 tantque ( i <d )

8 si T[ i ] >T[ i + 1 ] alors

9 T[i ] ←→T[ i+1 ]

10 fsi

11 inc( i )

12 ftq

13 dec( d )

14 ftq

15 fin Comparaisons ? Echanges ?´

Philippe Langevin (IMATH, universit´e de Toulon) Avril 5 / 20

(6)

tri ` a bulles

1 TRIBULLE( T : tableau de n objets )

2 variable i , j , d : indice ; echange: boole

3 debut

4 d = n ; echange

5 tantque ( d>1 ) et echange

6 j 1; echange

7 tantque ( j <d )

8 si T[ j ] >T[ j + 1 ] alors

9 T[j ] ←→T[ j + 1 ] ;echange

10 fsi

11 inc( j )

12 ftq

13 dec( d )

14 ftq

15 fin

Comment utiliser le drapeau ? Cas favorable ? Cas d´efavorable ?

Philippe Langevin (IMATH, universit´e de Toulon) Avril 6 / 20

(7)

tri par insertion

1 TRIINSERTION( T : tableau de n objets )

2 variable i , j , d : indice

3 debut

4 i 2

5 tantque ( i <n )

6 j i

7 tantque ( t [ j ] <t[ j1] )

8 t [ j ] ←→ t[j1]

9 dec( j )

10 ftq

11 inc( i )

12 ftq

13 fin Une erreur ? sentinelle. . .

Philippe Langevin (IMATH, universit´e de Toulon) Avril 7 / 20

(8)

tri par insertion

1 TRIINSERTION( T : tableau de n objets )

2 variable i , j , d : indice

3 debut

4 i 2

5 tantque ( i <n )

6 j i

7 tantque ( t [ j ] <t[ j1] )

8 t [ j ] ←→ t[j1]

9 dec( j )

10 ftq

11 inc( i )

12 ftq

13 fin Comparaisons ? Echanges ?´

Philippe Langevin (IMATH, universit´e de Toulon) Avril 8 / 20

(9)

Analyse empirique

Philippe Langevin (IMATH, universit´e de Toulon) Avril 9 / 20

(10)

Tri lin´ eaire

1 TRILINEAIRE( t : tableau de n entiers )

2 variable cpt : tableau de n entiers

3 i , k : indice

4 debut

5 cpt [0,0, ..., 0 ]

6 i 0

7 tant que i <n

8 inc( cpt [ t [ i ] ] ) ; inc( i )

9 ftq

10 k 0

11 tant que( i <n )

12 tantque ( cpt [ i ] >0 )

13 t [ k ] = i; inc( k ) ; dec( cpt [ i ] )

14 ftq

15 inc ( i )

16 ftq

17 fin

Philippe Langevin (IMATH, universit´e de Toulon) Avril 10 / 20

(11)

Tri fusion

1 TRIFUSION( t , i, j )

2 variable t : tableau de n objets

3 i , j ,k : indice

4 debut

5 si ( n> limite ) alors

6 tribasique( t , 1, n )

7 retourner

8 fsi

9 k ( i + j ) div 2

10 trifusion( t , i , k )

11 trifusion( t , k+1, j )

12 fusionner (t , i , j )

13 fin

Philippe Langevin (IMATH, universit´e de Toulon) Avril 11 / 20

(12)

fusionner

1 FUSIONNER( t : table, i, j : indice )

2 variable

3 q : indice

4 debut

5 q = ( i + j ) div 2

6

7 // homework !

8 fin

i j

. . . 1 4 5 7 2 3 6 8 . . .

Philippe Langevin (IMATH, universit´e de Toulon) Avril 12 / 20

(13)

Arbre de r´ ecursion

Philippe Langevin (IMATH, universit´e de Toulon) Avril 13 / 20

(14)

Nombre de comparaisons

T le nombre de comparaisons pour traiter instance de taille n f le nombre de comparaisons fusion/division : lin´eaire!

T(n) = 2T(n

2) +f(n) d´evissage :

T(n) = 2T(n

2) +f(n)

= 2[2T(n

22) +f(n

2)] +f(n) = 22T(n

22) + 2f(n)

= 22[2T(n

23) +f(n

22)] + 2f(n) = 23T(n

23) + 3f(n) ...

= 2kT( n

2k) +kf(n) = Θ(nlogn)

Philippe Langevin (IMATH, universit´e de Toulon) Avril 14 / 20

(15)

borne minimale

Th´eor`eme

Un algorithme de tri comparatif proc`ede en Ω(nlogn)comparaisons.

Du point de vue du nombre de comparaisons, l’algorithme de tri fusion est optimal !

Philippe Langevin (IMATH, universit´e de Toulon) Avril 15 / 20

(16)

L’ˆ age du capitaine

L’ˆage du capitaine est compris entre 20 et 50 ans. Combien de questions doit-on lui poser pour d´eterminer son ˆage ?

5

20 + (x4. . .x1x0)

On consid`ere les tableaux den objets distincts. Un algorithme de tri comparatif est face `an! situations diff´erentes. Chaque comparaison est vue comme une question pour d´eterminer l’age du capitaine ! Il doit en

proc´eder :

log(n!) = log 1 + log 2 +. . .+ logn = Θ(nlogn).

Philippe Langevin (IMATH, universit´e de Toulon) Avril 16 / 20

(17)

L’ˆ age du capitaine

L’ˆage du capitaine est compris entre 20 et 50 ans. Combien de questions doit-on lui poser pour d´eterminer son ˆage ?

5

20 + (x4. . .x1x0)

On consid`ere les tableaux den objets distincts. Un algorithme de tri comparatif est face `an! situations diff´erentes. Chaque comparaison est vue comme une question pour d´eterminer l’age du capitaine ! Il doit en

proc´eder :

log(n!) = log 1 + log 2 +. . .+ logn = Θ(nlogn).

Philippe Langevin (IMATH, universit´e de Toulon) Avril 16 / 20

(18)

L’ˆ age du capitaine

L’ˆage du capitaine est compris entre 20 et 50 ans. Combien de questions doit-on lui poser pour d´eterminer son ˆage ?

5

20 + (x4. . .x1x0)

On consid`ere les tableaux den objets distincts. Un algorithme de tri comparatif est face `an! situations diff´erentes. Chaque comparaison est vue comme une question pour d´eterminer l’age du capitaine ! Il doit en

proc´eder :

log(n!) = log 1 + log 2 +. . .+ logn = Θ(nlogn).

Philippe Langevin (IMATH, universit´e de Toulon) Avril 16 / 20

(19)

L’ˆ age du capitaine

L’ˆage du capitaine est compris entre 20 et 50 ans. Combien de questions doit-on lui poser pour d´eterminer son ˆage ?

5

20 + (x4. . .x1x0)

On consid`ere les tableaux den objets distincts. Un algorithme de tri comparatif est face `an! situations diff´erentes. Chaque comparaison est vue comme une question pour d´eterminer l’age du capitaine ! Il doit en

proc´eder :

log(n!) = log 1 + log 2 +. . .+ logn= Θ(nlogn).

Philippe Langevin (IMATH, universit´e de Toulon) Avril 16 / 20

(20)

recherche lin´ eaire

1 RECHERCHE( x, t )

2 donnee x : objet

3 t : table de n objets

4 variable

5 i : indice

6 debut

7 i = 1

8 tant que( i net t [ i ] != x)

9 inc( i )

10 ftq

11 si ( i n ) alors

12 retourner i

13 sinon

14 retourner 0

15 fin

Philippe Langevin (IMATH, universit´e de Toulon) Avril 17 / 20

(21)

analyse

variant ? cas favorable ? cas d´efavorable ? complexit´e ? invariant ?

Philippe Langevin (IMATH, universit´e de Toulon) Avril 18 / 20

(22)

recherche dans un tableau tri´ e

1 DICHOTOMIE( x:objet, t : table de n objets )

2 variable

3 i 1, j n, q : indice

4 debut

5 tant que( i <j )

6 q( i + j ) div 2

7 si ( x = t[q] ) alors

8 retourner q

9 fsi

10 si ( t [ q ] >x ) alors

11 j q1

12 sinon

13 i q + 1

14 fsi

15 ftq

16 retourner 0

17 fin

Philippe Langevin (IMATH, universit´e de Toulon) Avril 19 / 20

(23)

analyse

variant ? cas favorable ? cas d´efavorable ? complexit´e ? invariant ?

Philippe Langevin (IMATH, universit´e de Toulon) Avril 20 / 20

Références

Documents relatifs

With the CLR hosted in Microsoft SQL Server (called CLR integration), you can create stored procedures, triggers, user-defined functions, user-defined types, and user-defined

Un objet traite un message re¸cu (a) en impl´ementant une interface (b) en ex´ecutant un constructeur (c) en ex´ecutant une m´ethode statique (d) en ex´ecutant une

Pression-Temps-Temp´ erature (pression en ordonn´ ee, temp´ erature en abs- cisse, les diff´ erents points sont espac´ es en temps de 1 million d’ann´ ees), 2) la Topographie

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

Ecrire un programme C qui compte le nombre d’lment non nul d’un tableau d’entiers, affiche ce nombre ainsi que la somme de tous

Philippe Langevin ( imath/ustv ) Unix et Programmation Shell Automne  1 /

Philippe Langevin ( imath/ustv ) Unix et Programmation Shell Automne  2 / 68...

Philippe Langevin (IMATH, universit´ e de Toulon) Mars  1 / 37... repr´ esentation