Skip to main content

Median of Five Numbers

U have 5 NOs , X1,X2,X3,X4,X5

With minimum no. of comparisons we have to find a median.

SWAP(X,Y) function is available to u .

I have a answer of six comparisons and eight swaps....wait for people to find out by themselves.

Comments

  1. Courtesy orkut ....did not verified as could not get the logic completely.

    int median_of_5(int * x) {
    if ( x[0] < x[1] ) swap( &x[0], &x[1] ) ;
    if ( x[2] < x[3] ) swap( &x[2], &x[3] ) ;
    if ( x[0] < x[2] ) { swap( &x[0], &x[2] ) ; swap( &x[1], &x[3] ) ; }
    if ( x[1] < x[4] ) swap( &x[1], &x[4] ) ;
    if ( x[1] < x[2] ) { swap( &x[1], &x[2] ) ; swap( &x[3], &x[4] ) ; }
    if ( x[2] < x[4] ) swap( &x[2], &x[4] ) ;
    return (x[2]) ;
    }

    ReplyDelete

Post a Comment

Popular posts from this blog

Car Parking Problem

There is n parking slots and n-1 car already parked. Lets say car parked with initial arrangement and we want to make the car to be parked to some other arrangement. Lets say n = 5, inital = free, 3, 4, 1, 2 desired = 1, free, 2, 4 ,3 Give an algorithm with minimum steps needed to get desired arrangement. Told by one of my friend and after a lot of search i really got a nice solution. I will post solution in comment part

JDBC connection factory

  Class ConnectionManager {   Queue<Connection> availableConnection;   List <Connection> allotedConnection; ConnectionManager( Integer noOfConnections, ConnectionPoperties props ) {     //Create the no of connection objects and assign to avaialbleConnection } Conection getConnection() {     syncronized( this.class) { if (availableConnection.isEmpty() ) {          throw ConnectionExhausted();       }       conn = availableCOnnection.poll();       alottledConectiion.add(conn); } return conn; } synchronized Conection releaseConnection(Connection conn) {        alottedconnection.remove(conn);    avaialbleConection.add(conn); }