partition function
int partition ( int [ ] A , int si , int ei ) { int x = A [ ei ] ; int i = ( si - 1 ) ; int j ; for ( j = si ; j <= ei - 1 ; j ++ ) { if ( A [ j ] <= x ) { i ++ ; int temp = A [ i ] ; A [ i ] = A [ j ] ; A [ j ] = temp ; } } int temp1 = A [ i + 1 ] ; A [ i + 1 ] = A [ ei ] ; A [ ei ] = temp1 ; return ( i + 1 ) ; }