Middle of Three
Problem​
Given three distinct numbers A, B and C. Find the number with value in middle (Try to do it with minimum comparisons).
Examples:​
Example 1:
Input:
A = 978, B = 518, C = 300
Output:
518
Explanation:
Since 518>300 and 518<978, so 518 is the middle element.
Example 2:
Input:
A = 162, B = 934, C = 200
Output:
200
Exaplanation:
Since 200>162 && 200<934, So, 200 is the middle element.
Your task:​
You don't need to read input or print anything.Your task is to complete the function middle() which takes three integers A,B and C as input parameters and returns the number which has middle value.
- Expected Time Complexity:
- Expected Auxiliary Space:
Constraints:​
A,B,C are distinct.
Solution​
Python​
def middle(self,A,B,C):
if A > B:
if A > C:
if B > C:
return B
else:
return C
else:
return A
else:
if B > C:
if A > C:
return A
else:
return C
else:
return B
Java​
int middle(int A, int B, int C){
if (A > B) {
if (A > C) {
if (B > C) {
return B;
} else {
return C;
}
} else {
return A;
}
}
else {
if (B > C) {
if (A > C) {e
return A;
}
else {
return C;
}
}
else {
return B;
}
}
}
C++​
int middle(int A, int B, int C){
if (A > B) {
if (A > C) {
if (B > C) {
return B;
} else {
return C;
}
}
else {
return A;
}
}
else {
if (B > C) {
if (A > C) {
return A;
}
else {
return C;
}
}
else {
return B;
}
}
}
C​
int middle(int A, int B, int C){
if (A > B) {
if (A > C) {
if (B > C) {
return B;
} else {
return C;
}
}
else {
return A;
}
}
else {
if (B > C) {
if (A > C) {
return A;
}
else {
return C;
}
}
else {
return B;
}
}
}
- Time Complexity:
- Auxiliary Space: