Algorithmique : Le Tri Par Tas

Transcription

Algorithmique : Le Tri Par Tas
PR01TriParTas.doc
!"#
$%#
%$$&
'
,
+
+
/ , **
(
.
.
*0+
) *
/ .
3 (
+
* +
,
(+
*
,+
*
,01+
.
*-
+ '
,, *, +,
*3
3
,
* 1
* *, +
*
* +
,, 4
*, + 1 + .5
++ , *3 +,
,
*+
4
++
+
!4
* .
* -
,*
*
*
5
1+
2
3
*-
.
4
,
7
.3
3
4
4
4
3
5
7
5
7
5
--%4
*
+
.
*-
, * *
* 65
* 5
*
)
+ ,*
' 4
3
.
3
+
*
+ ,,
+
*
.
*
,*
+
4
.
"$04
5
+
---
*
*4
7
.
*
.
/ .
*
+ ,* 7 , 8
'
. 4
1 +
)*
+
+
.
+
/ . 9 + !*
.
/ . 0+
*
4
+3, +
+ ,*
++
+ 1
.
,, +, .
81
+
+ +
* 7
+ 3
*
61
+
*)
.
* 3
- : *,,
(
4
+
+ +
* *,
* ;
4
+
3
3
. *(
3. 1
*
- + 4
3
3 -' # ++
*,,
*
*
2 1
+
*
+
4/
*
- +
* *,
*
*. 04
Page 1 sur 8
*
+
6
. *,,
*)
*,
"$01
7,
,+
*
8
4
*,
*
8
7 +
8
)
+
/ 3
3
,0
* *,
*
1 .
6
*
*
+
,, +
. *
5
+
* "$< *
.
* *
PR01TriParTas.doc
!
' (
+5 / * 6
(
.
/
+
$ %01 *
= )* 0
,,
)
+
)
.
4
,,
"
*
?
#
1
.
.
*-
1
+
@!
A
+
+
CD$0 /*) CD$0 3
/ .
A
+
B CE .
A
*) B0
I#
) I#
E
)
$E
+5 3 I#
+I#
J ?
E!K
I#
#
I
E$1
!(
*
(
+
1
+I#
+
.
A
*) B
.
A
*) B
.
A
+
.
A
+
B
+
+
*)
*)
*) #
%
I *6
EI * 6
@!K #
I'
+
EI * 6
K
. A
+
BE K
B
#
I'
.
I#
) ,,
(
3 I#
*) E+
#
I
;
N
H
$
F
G
F
.
#
B
#
%
#
I
/
'
"
*
+
,*
H
#
IJ
J ?
+
K#
I
*) K #
I
* +5 I#
K
#
I!E
+K#
I? .
) *L
,
!
+
.
*)
%
4
'
' (
/
1*) 1
3
,
.
&
'
4
+5 4
>*
*
0
+
#
#
%K #
I
M
//
3/
H
)
+
* +5 I#
I#
OE$0 P/*) OE$ 0 0
.
A
+
BCE .
A
*) B 0
+E . A
*) BK
. A
*) BE . A
+
. A
+
BE +K
+
E*) K
*) E*) #
%K
)
BK
Q
H
E$K
Q
Q
/
0 , !
1
+!
+%
+R
+&
7
5
5
2
7
7
5
6
6
M
3
,, U 3 *
*
*
+ ) *
3
. * + '4
3
3
*(+
*
* &)
S1"1T %4
U
4
7
S
E!
"
E%
T
ER
%
E&
Page 2 sur 8
+
(+
(
'
PR01TriParTas.doc
)
@
2
,
2
+
34
+
+
2
+
+
+
)
)
3
.
4
2
+
/)
2 +
- +
V
,*
+
*
"
%
#
3
Tableau
Taille
Position
Procédure Supprimer
Si (Position= = 1) alors (taille taille-1) fin Si
Calcul de la position des fils par rapport au père : Les Index
Les deux Index sont t’ils inférieurs ou égaux à la taille du tableau ?
Fils Gauche
Fils Droit
O/N?
N/O?
STOP
Hors Course
Hors Course
2 hors course =sortie, pas de fils !
On choisit le plus petit des deux Fils pour élire l’éventuel remplaçant, si il
y en à qu’1, il devient l’éventuel remplaçant.
Le Remplaçant est-il plus petit que son Père ?
On intervertit les valeurs du père
et du fils.
O/N?
STOP
Tableau
Taille
Index Remplaçant
Page 3 sur 8
*-3
3
*
.
0
+
+. *
. ()
5
2
+.
6
PR01TriParTas.doc
+
+
*
*!*
)
,,
. 4
++
' ,
;
+
(
*
* ++
+ +
*
,)
)
,4
*
*)
34
.
* .
/ +
.
+
)
;
"
+#
+ ,*
*
'
,
1
,
+
1
+
)1(
+ *
,
-'
++ , '
=
*5
*) =
)
*
*-* 6!01
+U
. 01+ ) *, ,
*
.
*
* . 4
* ,,
(
+ ,*
3
*3
3
,
1'
,* ,
*3
-3 *
* 4
+ ,*
+
* +
+
(
*
. 3
4
+
/
+
)
(
4
)
*
%
4
++
"
+#
4
. (7 '
81
'
- *, * *
+ ,*
,
)1
-6
,
7
2 = 8
:
+ *
,
++ 1
2
1( )
*
)
*
-* 6* ,,
4
-
4
&
++
?
*
/ #
.
* 1
+
/+
*-
1
+
13
13 *
A
+
A
.
0
1
+
E !0
.
.
B
B $
2!
A
B
F
3
3*
/3 *
/+
/+
I%0K
I%0@!
DI
0
/3
*
D
*
0
$
+
3
F
/ .
A
3* B C .
+
3*
+
3
A
3
B0
F
F
/*
* CD$0
/
.
A
+
BD .
A
+
B0
+ . A +
B
. A +
B
. A
+
. A
+
B
+
++
/ . 1
1 +
B
0
F
F
)
)
+
*
++
1*
+
(!4
Page 4 sur 8
++
17 +
8* =
,
PR01TriParTas.doc
(
'
"
.
*
+
*
##
#
+
W
H
*
* K
K
3
K
3* K
+K
#
#
?
#
#
#
#
#
#
#
#
?
+
.
*,
3
+
L* 6*
+ U * +5
L* 6* 3
L* 6* 3 *
.
+
)
) (L
,
#
# +
3/ +
H
++
+ ,*
*
+
+5
+
+
* +5 +
+
5 )
* 3
*
.+
*
5
EE ! 0
. A
+
. A
I
I
EI
BE . A
I
BE$K
2!K#
#
),
BK
*
,
) ,O
Q
3
3*
E/+
E/+
#
I%0K#
I%0@!K
3/ 3 *
H
DI
* L* 6* 3
+
* 3 *
0
3/ 3
*
+
DI
0
* E$K
E3
K
Q
H
3/
.
A
3*
+
+
BC .
E3 *
E3
A
3
K
B0
K
Q
3/ *
H
* OE$ 0 #
#
J
3/
H
*
.
.
A
+
,($
BD .
L
,6
A
+
3
B0
+E . A +
BK
. A +
BE . A
+
BK
. A
+
BE +K
#
# )
)+ ( .
+
++
/ . 1
1 +
0K
3
Q
Q
/
)
@
2
+
34
2
+
+
2
)
+
5 )
2
+
+
3
2
+
,
+ *
,
*+
*
+
)
)
5
+. *
. ()
.
4
.
,
++
+
( X
4
*
+ (
+
+
5 * 6 *6
/+5 3 0
3
+
,
)
Page 5 sur 8
+ ,*
)
O
7
:
)
8
1
PR01TriParTas.doc
)
0 , !
1
+&
+R
+%
+!
2
5
6
7
5
7
7
6
6
Y *(+
S1"1
T %4
*
++
U
7
++%
E&
++ T
ER
++ "
E%
5
7
.3
4
3
4
5
5
7
Suppression
dans
« Tableau »,
du
Minimum, ajout de
l’élément
supprimé
dans HeapSort1 .Puis
suppressions
successives
dans
HeapSort1
et
reconstruction
de
« Tableau » en ordre
croissant.
---
4
++ S
E!
4
.
* &)
,
,
)
,(
+
- ,*
++
1
*
+ *
,
++ (
.
* 65
+
*
*
,*
'
*
5 +
)
4
+
3
4
7
5
---
1
+ ,*
+ *
'
*
1
+
+
*
2
/+
,01+ *
*
+
4
++
*- +
*
)
%
,
.
*
.
+
+
1
*-
5
+ O
%
*
++
7 .
8
,, 4
'
7 . 9 + !8 ,
++ ,4
* .
7 .
8
7 . 9 + ! 9 + 8
*
.
&
!/ #
.
6
81 + ,*
*
*
'
7
(
6
1
1
"
0
+
*
.#
6
'
+
6
*
.
*
7
?
'
11
'
11 K
*!(
3
. AB
'
/ 1
9
+
1 .
9
+
3 / E!KCEI
K@@0
H
E . ABK
'
/ 1 9
Q
!0
F
'* ! (
1 .
9
!1
9
+
3 /'
E!K
'
CEI
K
'
@@0
H
E . 9 + !A
!BK
. A
'
BE K
++
/ . 9 + !1
Q
1
!0K
'
)
/
)
6
+
+
!0K
3
. 9 + !A
!B
. A
'
B
++
/ . 9 +
F
+
'
++
, +,,*
*)
=
,
4
Page 6 sur 8
*
6
1
*,'
( ,,
9
+
1
!0K
PR01TriParTas.doc
)
@
2 5
)
2
+ (
+,
0 , !
)
+ "+
12$ +
+
3=
,
8
)
,3
*
1
+ XR*
.
. 3
1 *) *
.
+
,*
*,
*-'
++
4
+
4
(
.
+
!
)* /)
!
*
3
*
2 = 4
* *-3
3
5
+
*-
+
*,3
.
2
-
5*
4
,)
04
*
2
1
, , *
*4
J
,4
4
+
.
)
(
+
(+
5
+1
3
3
*,+ , 4 ;
*
.
1
++
+
*
,
.
. 1
,
*
4
)
3
=
(
)
+
+5 4
%
*
3
,
- +
1
* + ,*
)
3
'
5
6
*) + 7 3
+ *-'
++
* 9
8*
++
4
-.
)
-
-
+
)
65
%:;9
65
%:;9
+
*1
+
-)
*
+ 4 /?
@
2 5
+ (
*
0
2
+,
4
2
5*
Page 7 sur 8
*,3
*-'
++
4
PR01TriParTas.doc
&
+
' (
%/ #
1
.
*-
0
'
"
.
*
+
#
H
?
1' 1
9
1
* $ (/
'
'
1' 1
2!0 3
. A@!B
9
%/ 1' 1 .
I
*!(
0
9
K
%/ .
@!B
1P
9
EI
1
!0
F
0K
K
3 / E!KCEI
K@@0
H
E . A
!BK
++
9
. A 9
Q
3
. A
!B
++
9
. A 9
1K
3 / E$KCI
K@@0
H
' EK
E . A@!BK
'
9
%/ 1
P' 1.
Q
F
9
9
%/ .
@!BE K
1P
9
1
!0K
/
)
)
,
4
3
5
J'
9
6
+
*
(
++
. 4
7
+
5
+1
%1
) (
+5
)
3
3 *W /
+ * +
)
+ * 3
)
)
)
04
3 *
,* *
5
Légende :
Tailles « virtuelles » livrée à '
9
Tailles « virtuelles » livrée à ++
9
%1*
- 7
%1*
- 7
:!$ ,,
1 3
7
!$
8O
6 +1
,1
*
.
*
* !1*
/
@!0 +
=
,+
Z * +
*4
. 6
- **
*
.
7+ + 8
)
*-
8
=
)
3
, *
. 1* 6
* 6
. 6
1
2 * = ,
(
*
*
+
. 1
*- *
4
)
7
8 ( '
++
.
7 + + 81
) * 6
)
< 0 , !
J
12$ +
4
Y+
)4
+
%
+
,
*
1
+ "+
4
,
.
,4
1
+
(
.
+ X&*
4
-: )
*,
+ %1
3
* , ,
%
*
*
4
3
*
+
+
+ +
,
) *1
+
%
,
+
4
!
+
* +,
+ '+ 6
)
%1
' -+
,
(
+ *+
%
'
+
5 (
+ ,*
+ ,*
++
4J
5
+
++ ( + ,*
++
4
6
+,* +
Page 8 sur 8
+
/ 4
[ +
4
04