Case - 2 :
else if ( pos . size ( ) >= 2 ) { int posMax = Integer . MIN_VALUE , posMaxIdx = - 1 ; int posMin = Integer . MAX_VALUE , posMinIdx = - 1 ; for ( int i = 0 ; i < pos . size ( ) ; i ++ ) { if ( arr [ pos . get ( i ) ] > posMax ) { posMaxIdx = pos . get ( i ) ; posMax = arr [ posMaxIdx ] ; } } for ( int i = 0 ; i < pos . size ( ) ; i ++ ) { if ( arr [ pos . get ( i ) ] < posMin && pos . get ( i ) != posMaxIdx ) { posMinIdx = pos . get ( i ) ; posMin = arr [ posMinIdx ] ; } } res . add ( arr [ posMinIdx ] ) ; res . add ( arr [ posMaxIdx ] ) ; for ( int i = 0 ; i < n ; i ++ ) { if ( i != posMinIdx && i != posMaxIdx ) { res . add ( arr [ i ] ) ; } } for ( int i = 0 ; i < res . size ( ) ; i ++ ) { System . out . print ( res . get ( i ) + " ▁ " ) ; } System . out . println ( ) ; }