Posts

Quick Sort Program

#include < iostream . h > #include < conio . h > int partition ( int a [ ] , int p , int r ) { int x , i , temp ; x = a [ r ] ; i = p - 1 ; for ( int j = p ; j < r ; j ++ ) { if ( a [ j ] <= x ) { i = i + 1 ; temp = a [ j ] ; a [ j ] = a [ i ] ; a [ i ] = temp ; } } temp = a [ i + 1 ] ; a [ i + 1 ] = a [ j ] ; a [ j ] = temp ; return i + 1 ; } void quicksort ( int a [ ] , int p , int r ) { int q ; if ( p < r ) { q = partition ( a , p , r ) ; quicksort ( a , p , q - 1 ) ; quicksort ( a , q + 1 , r ) ; } } void main ( ) { clrscr ( ) ; int * a , n ; cout << "\nEnter the no. of element you want:" ; cin >> n ; a = new int [ n ] ; //dynamically initialize array cout << "\nEnter the elements:\n" ; for ( int i = 0 ; i < n ; i ++ ) cin >> a [ i ] ; quicksort ( a , 0 , n - 1 ) ; cout << "\nSorted Array is:\n" ; fo...

Merge Sort Program

#include < iostream . h > #include < conio . h > #include < values . h > void merge ( int a [ ] , int p , int q , int r ) { int n1 = q - p + 1 , n2 = r - q ; int * l = new int [ n1 + 1 ] ; int * rt = new int [ n2 + 1 ] ; for ( int i = 0 ; i < n1 ; i ++ ) l [ i ] = a [ p + i ] ; for ( int j = 0 ; j < n2 ; j ++ ) rt [ j ] = a [ q + j + 1 ] ; l [ n1 ] = MAXINT ; //SENTINEL rt [ n2 ] = MAXINT ; //SENTINEL i = j = 0 ; for ( int k = p ; k <= r ; k ++ ) { if ( l [ i ] <= rt [ j ] ) { a [ k ] = l [ i ] ; i += 1 ; } else { a [ k ] = rt [ j ] ; j += 1 ; } } } void mergesort ( int a [ ] , int p , int r ) { int q ; if ( p < r ) { q = ( p + r ) / 2 ; mergesort ( a , p , q ) ; mergesort ( a , q + 1 , r ) ; merge ( a , p , q , r ) ; } } void main ( ) { clrscr ( ) ; int n ; cout << "\nEnter the no. of elements you want:" ;...