ePerTutti
Appunti, Tesina di, appunto tecnica

Esercitazione decima - Programma Heap Sort ( X )

Scrivere la parola
Seleziona una categoria

Esercitazione decima

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 : 7

Inserire il 2 numero

Input : - 2

Inserire il 3 numero

Input : 5

Inserire il 4 numero

Input : 8

Inserire il 5 numero

Input : 1

Inserire il 6 numero

Input : 0

Inserire il 7 numero

Input : 4

Inserire il 8 numero

Input : 67

Inserire il 9 numero

Input : 44

Inserire il 10 numero

Input : 2

Il vettore ordinato č :

Output : –2, 0, 1, 2, 4, 5, 7, 8, 44, 67

Inserire il 1 numero

Input : 9

Inserire il 2 numero

Input : 8

Inserire il 3 numero

Input : 7

Inserire il 4 numero

Input : 6

Inserire il 5 numero

Input : 5

Inserire il 6 numero

Input : 4

Inserire il 7 numero

Input : 3

Inserire il 8 numero

Input : 2

Inserire il 9 numero

Input : 1

Inserire il 10 numero

Input : 35

Il vettore ordinato č :

Output : 1, 2, 3, 4, 5, 6, 7, 8, 9, 35






Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta