# Heap Sort Program in c

## Heap Sort:

#include <stdio.h>

#include <conio.h>

void makeheap ( int [ ], int ) ;

void heapsort ( int [ ], int ) ;

void main( )

{

int arr[10] = { 11, 2, 9, 13, 57, 25, 17, 1, 90, 3 } ;

int i ;

clrscr( ) ;

printf ( “Heap Sort.\n” ) ;

makeheap ( arr, 10 ) ;

printf ( “\nBefore Sorting:\n” ) ;

for ( i = 0 ; i <= 9 ; i++ )

printf ( “%d\t”, arr[i] ) ;

heapsort ( arr, 10 ) ;

printf ( “\nAfter Sorting:\n” ) ;

for ( i = 0 ; i <= 9 ; i++ )

printf ( “%d\t”, arr[i] ) ;

getch( );

}

void makeheap ( int x[ ], int n )

{

int i, val, s, f ;

for ( i = 1 ; i < n ; i++ )

{

val = x[i] ;

s = i ;

f = ( s – 1 ) / 2 ;

while ( s > 0 && x[f] < val )

{

x[s] = x[f] ;

s = f ;

f = ( s – 1 ) / 2 ;

}

x[s] = val ;

}

}

void heapsort ( int x[ ], int n )

{

int i, s, f, ivalue ;

for ( i = n – 1 ; i > 0 ; i– )

{

ivalue = x[i] ;

x[i] = x[0] ;

f = 0 ;

if ( i == 1 )

s = -1 ;

else

s = 1 ;

if ( i > 2 && x[2] > x[1] )

s = 2 ;

while ( s >= 0 && ivalue < x[s] )

{

x[f] = x[s] ;

f = s ;

s = 2 * f + 1 ;

if ( s + 1 <= i – 1 && x[s] < x[s + 1] )

s++ ;

if ( s > i – 1 )

s = -1 ;

}

x[f] = ivalue ;

}

}

heap sort program in Java

## Leave a Reply

Be the First to Comment!