tecnica |
In questa esercitazione è presentata la codifica in Pascal di un programma che riordina un array di interi tramite la tecnica dell'Heap sort .
Programma Heap Sort ( X )
Program Heap ;
uses crt ;
type campo = array [ 1..10 ] of integer ;
var t : campo ;
var i, n, x : integer ;
procedure swap ( var x :campo ; a, b :integer ) ;
var c : integer ;
begin
c := x [ a ] ;
x [ a ] := x [ b ] ;
x [ b ] := c ;
end ;
procedure pushdwn ( var x :campo; a, b: integer ) ;
begin
lio := 2 *a ;
if lio < b then if x [ lio+1 ] > x [ lio ]
if lio <= b then if x [ a ] < x [ lio ] then begin
swap ( x, a, lio ) ;
pushdwn ( x, lio, b) ;
end ;
end ;
procedure deletemax ( var x :campo ; var a :integer ) ;
begin
swap ( x, 1, a ) ;
a:=a-l;
pushdwn ( x, 1, a ) ;
end ;
procedure makeheap ( var x :campo ; n : integer ) ;
var i: integer ;
begin
for i:= n div 2 downto 1 do pushdwn ( x, i, n )
end ;
begin
clrscr ;
for i :=1 to 10 do begin
write ( 'Inserire il ', i, ' numero ' ) ;
readln ( n ) ;
t [ i ] :=n ;
end ;
makeheap ( t, 10 ) ;
x := 10 ;
while x >1 do deletemax ( t, x ) ;
write ( 'Il vettore ordinato è ' ) ; for i:=1 to 10 do write ( t [ i ] ) ;
readln ;
end .
Dimostrazione pratica
Inserire il 1 numero
Input
Inserire il 2 numero
Input
Inserire il 3 numero
Input
Inserire il 4 numero
Input
Inserire il 5 numero
Input
Inserire il 6 numero
Input
Inserire il 7 numero
Input
Inserire il 8 numero
Input
Inserire il 9 numero
Input
Inserire il 10 numero
Input
Il vettore ordinato è :
Output
Inserire il 1 numero
Input
Inserire il 2 numero
Input
Inserire il 3 numero
Input
Inserire il 4 numero
Input
Inserire il 5 numero
Input
Inserire il 6 numero
Input
Inserire il 7 numero
Input
Inserire il 8 numero
Input
Inserire il 9 numero
Input
Inserire il 10 numero
Input
Il vettore ordinato è :
Output
Privacy
|
© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta