Sunday, May 22, 2011

Write a program to demonstrate the use of stack in implementing quick sort algorithm to sort an array of integers in ascending order.

#include /* Header File*/
int quick ( int*, int, int ) ;
int main( )
{
int arr[10] = { 11, 10, 9, 15, 3, 26, 19, 1, 7, 28 } ; /*Declaration of Array*/
int count1 ;
int Quicksort ( int *, int, int ) ;
printf ( "Quick sort:\n" ) ;
printf ( "\nArray before sorting:\n") ;
for ( count1 = 0 ; count1 <= 9 ; count1++ ) printf ( "%d", arr[count1] ) ; Quicksort ( arr, 0, 9 ) ; printf ( "\nArray after sorting:\n") ; for ( count1 = 0 ; count1 <= 9 ; count1++ ) printf ( "%d", arr[count1] ) ; } int Quicksort ( int arr[ ], int low, int high ) { int n ; if ( high > low )
{
n = quick ( arr, low, high ) ;
Quicksort ( arr, low, n - 1 ) ;
Quicksort ( arr, n + 1, high ) ;
}
}

int quick ( int arr[ ], int low, int high )
{
int n, opt, value, temp ;
opt = low + 1 ;
value= high ;
n = arr[low] ;
while ( value >= opt )
{
while ( arr[opt] < n ) opt++ ; while ( arr[value] > n )
value-- ;
if ( value> opt )
{
item = arr[opt] ;
arr[opt] = arr[value] ;
arr[value] = item ;
}
}
temp = arr[low] ;
arr[low] = arr[value] ;
arr[value] = temp ;
return value;
}

OUTPUT


Quick sort:

Array before sorting:

11 10 9 15 3 26 19 1 7 28

Array after sorting:

1 3 7 9 10 11 15 19 26 28

No comments:

Post a Comment