INSERTION SELECTION SORT
SORT im
in PE
①(m)
MI Oluz)
2) n
INSERTION-SORT (A) Selection-Son(a)
length
for A
length
to A =
jz2 . .
Key for to
Atj] jc-1 1
m
<
- -
smallest
ic -j 1 ↓
- for
While to
iz-j
key
Ali]
iso and +1 m
> if Ati]
Ati Atsmallest]
1] Ali] <
+ - smallesti
ic-i 1
- A
Ali Ismallest]
1] ATj]
exchange
Key < >
<
+ -
ALGORITMI RICORSIVI
MERGE MERGE MERGE-SORT
SORT Onlg
MERGE
Merge-Sort r)
(A pir) (A p g
, ,
,
,
if Mr a 1
p j
+
per 1
- - -
for
r)/2] Keptor
[(p q
m2 r
-
q + -
for
g)
(A RIj]
if ([i]
toms
ic-1
MERGE-SORT p
, , Alp
([i] i -1] Atk]
MERGE-SORT(A ([i]
r) < +
- <
1
+ -
a ,
, for to ic i
w) j-1
(A M2 + 1
MERGE -
g
p
, ,
, j]
Rtj] Alg REj]
else
<- Atk]
+ <
LIMs 2
1 -
+ j 1
jk +
RIM2 11-0
+
i 1 QUICK-SORT
PARTITION
QUICKSORT O(m) MI-MEO(m Ign) PEE(m2)
Quiersort RANDOMED-QUICKSort (A pir)
pir)
(A , ,
if
if per
par (A pir)
(A r) gl-RANDOMIZED-PARTITION
PARTITION
9 p ,
- ,
, (A P19-1)
(A RANDOMIZED-QUICKSORT
1)
QUICKSORT q
p - ,
, , RANDOMIZED-QuickSort (A r)
r)
(A
QUICKSORT gra
1
+
a , ,
, , RANDOMIZED
PARTITION PARTITION pir)
(A
(A r)
p - ,
,
, RANDOM(pir)
Atr] in
X
- Atr] Ati)
exchange
i <
p >
1
< -
- r)
(A
for to return PARTITION
r-s
j p
p
<- , ,
Atj]
if X
i
ic 1
+
- A[j]
A[i] <
Atite] Atr]
< >
-
return i +1
FATTORIALE
FATT(N)
N
if 1
=
retun 1
else FATT(N-1)
return NX RADIX-SORT
COUNTING-SORT ⑦(d(k
k)
k) Alm
(A m))
COUNTING-SORT RADIX-Sort (A d)
B +
+
, ,
,
KI tod
Clo for
sia ic-1
nuovo array
un
...
for perordinare
to stabile
R ordinamento
ic-o array
usa
A cifra
sulla
C[i] < i
O length
to
for A
jco .
CIA[j]] CIAlj]]
< 1
+
-
l
for to
ic-1
C[i] Cli] Cli 1]
< +
- -
length
for jcA downto 1
.
BICIATj7]] AIj]
< -
CIAtj]] -1
CIA[j]] <
-
TABELLE DIRETTO
INAMENTO
DIRECT-ADDRESS DIRECT-ADDRESS-DELETE
x) (T
INSERT(T X)
,
- ,
Key] Key]
TIx TIx NIL
< X <
-
-
.
HASH
HASH-SEARCH (T (T
k) HASH-Insert k)
, ,
ic il 0
O - i)
jc-h(k
repeat
repeat ,
i)
h(k TIjT
if
jz- NIL
=
, Tj]
A
if K
TIj] <-
= return
return j
j else
i ic-i +1
i 1
< + until
TIj]
until in
ori
Nic m
m
=
= overflow"
table
"hash
return NIL error
ALBERI TREE-SEARCH
TREE-INsERT (X
(T z) te)
, ,
if K Key
NIL
y) X
NIL
X or
= =
- T root return
X- X
. if
while Key
X
NIL
= <
X . (X left
return k)
TREF-SEARCH
=X
Y ,
.
(X h)
right
if return
else
Key
Key Tree-search
X
z . ,
.
. left
7 X
X .
right
else X . TRAPIANTO (T v)
Y
z P( u
- ,
. ,
if if
NIL
y NIL
= U p =
.
T root z T root -V
-
. .
Key Key
elseif elseif left
z <y. p
v u
=
. . .
left left =
. z
y v
p
u .
.
else right else right
z
y. v
U p .
.
if VENIL p
U
<
p
v - .
.
TREE-DELETE (T z)
,
left
if NIL
z =
. right)
(T Z
TRAPIANTO z
, , .
elseif right = N
z. (T left
TRAPIANTO z
z
, , . right)
(z
else TREE-MINIMUM
Y <
- .
if +z
y p
. (T right)
TRAPIANTO Y y
, ,
right right
<
-z
Y . .
right pzy
y . . y]
(T
TRAPIANTO z ,
,
left
left
y <z
. .
left ps-y
y .
.
STRUTTURE DATI AUMENTATE
OS-RANK
OS-SELECT (T x)
(X i) ,
, left
left size
X
1 =
r 1
size
rc X + +
.
.
. .
if i y X
r
= while root
T
return y
X .
if
elseif right
icr y X p
= .
.
(x i) left
left
OS-Select
return r< 1
size
+
r +
p
y .
. .
.
,
(X -r)
right
OS-SELECT
else return i y p
yc
-
, ,
. return r DINAMICA
PROGRAMMAZIONE
TOP-DOWN
MEMOIZED-CUT-ROD(pim)
r[o
Sia n] un nuovo array
...
ton
feric-o
r[i]c-- Rod-Aux(pim r)
MEMOlZED-CuT-
return ,
MemozED-CuT-Rod-Aux (p r)
m
. ,
r[m]
if O
> rIm]
return
if 0
n = 0
97
else q--x
for ic-stom r))
(q (p
pti] i
MEMORED-CUT-ROD-Aux
q n
max + -
1 , ,
r[m] = a
return a
BOTTOM-UP
Bottom-Up-CUT-Rod (p m)
.
Sia ro m] array
un nuovo
...
r[0] 0
for ton
jl-1
q--
for ic-sto j r[g-i])
(9 pliT
97 max +
.
rij) a
rin]
return
MST
GENERIC-MST (G w)
,
A-D albero
while forma di
A connessione
un
non è
v)
(n che
trova A
sicuro
un arco per
,
A-AuS(u v))
,
A
return
-
Algoritmi di sorting
-
Algoritmi e Strutture Dati
-
Algoritmi e strutture dati
-
Algoritmi e strutture dati