You have been given two integers 'A' and 'B' return minimum and maximum of both the numbers without branching.
Note :Branching includes if-else statements, the ternary operator, or switch-case statements. Therefore you should not use any of the above approaches to solving the problem.
The first line contains a single integer ‘T’ representing the number of test cases.
The only line of each test case contains two space-separated integers 'A' and 'B' representing two integers whose minimum and the maximum you need to return.
Output Format :
For each test case return the minimum and maximum of two numbers.
Note:
You do not need to print anything; it has already been taken care of. Just implement the function.
1 <= T <= 1000
1 <= 'A' <= 10^9
1 <= 'B' <= 10^9
Time Limit: 1sec
4
1 1
2 1
17 13
11 24
1 1
1 2
13 17
11 24
Test case 1 :
1 is the minimum of the two numbers.1 is the maximum of the two numbers. Therefore the answer is 1 1.
Test case 2 :
1 is the minimum of the two numbers.2 is the maximum of the two numbers. Therefore the answer is 1 2.
Test case 3 :
13 is the minimum of the two numbers.17 is the maximum of the two numbers. Therefore the answer is 13 17.
Test case 4 :
11 is the minimum of the two numbers.24 is the maximum of the two numbers. Therefore the answer is 11 24.
2
15 20
4 3
15 20
3 4
Using XOR operator.
Let us assume ‘b’ is minimum and ‘a’ is maximum among ‘a’ and ‘b’.( ‘a’ < ‘b’ ) is the comparison we will be using. We will calculate minimum and maximum as follows:
O(1)
As we just apply the bitwise operation twice, constant time is taken
O(1)
As we just need to store only two values minimum and maximum, constant space is used.