File tree Expand file tree Collapse file tree 2 files changed +60
-0
lines changed
algorithm/sorting/heap/basic Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ tracer . _print ( 'Original array = [' + D . join ( ', ' ) + ']' ) ;
2+
3+ function heapSort ( array , size ) {
4+ var i , j , temp ;
5+
6+ for ( i = Math . ceil ( size / 2 ) - 1 ; i >= 0 ; i -- ) {
7+ heapify ( array , size , i ) ;
8+ }
9+
10+ for ( j = size - 1 ; j >= 0 ; j -- ) {
11+ temp = array [ 0 ] ;
12+ array [ 0 ] = array [ j ] ;
13+ array [ j ] = temp ;
14+
15+ tracer . _select ( j ) ;
16+
17+ heapify ( array , j , 0 ) ;
18+ tracer . _print ( 'Swapping elemnts : ' + array [ 0 ] + ' & ' + array [ j ] ) ;
19+
20+ tracer . _deselect ( j ) ;
21+ }
22+ }
23+
24+ function heapify ( array , size , root ) {
25+
26+ var largest = root ;
27+ var left = 2 * root + 1 ;
28+ var right = 2 * root + 2 ;
29+ var temp ;
30+
31+ if ( left < size && array [ left ] > array [ largest ] ) {
32+ largest = left ;
33+ }
34+
35+ if ( right < size && array [ right ] > array [ largest ] ) {
36+ largest = right ;
37+ }
38+
39+ if ( largest != root ) {
40+ temp = array [ root ] ;
41+ array [ root ] = array [ largest ] ;
42+ array [ largest ] = temp ;
43+
44+ tracer . _notify ( largest , root ) ;
45+
46+ tracer . _print ( 'Swapping elemnts : ' + array [ root ] + ' & ' + array [ largest ] ) ;
47+
48+ heapify ( array , size , largest ) ;
49+ }
50+ }
51+
52+ tracer . _sleep ( 1000 ) ;
53+ tracer . _pace ( 800 ) ;
54+
55+ heapSort ( D , 10 ) ;
56+
57+ tracer . _print ( 'Final array = [' + D . join ( ', ' ) + ']' ) ;
Original file line number Diff line number Diff line change 1+ var tracer = new Array1DTracer ( ) ;
2+ var D = Array1D . random ( 10 ) ;
3+ tracer . _setData ( D ) ;
You can’t perform that action at this time.
0 commit comments