Pages

Saturday, October 31, 2020

Optimized Java Program to Find the Largest Among Three Numbers

1. Overview

In this tutorial, you'll learn how to find the biggest number from any given three numbers in java.

This is a very basic program for freshers but still we optimize the code using minimal if conditions.

Let us explore the different ways to find the largest value in 3 numbers and finally the best optimized way to achieve this.

To understand clearly this example, if you have knowledge on the below topics, that is added advantage in understanding easily.


Read the article till end, shown the best way in the last section.

Example:

Input: 10 20 30
Output: 30

Input: 56 100 30
Output: 100

Input: 100 -1 200
Output: 200

Optimized Java Program to Find the Largest Among Three Numbers


2. Example 1 To Find The Largest Three Numbers Using If-Else Condition


In the below example, first created 3 integer variables number1, number2 and number3 to hold 3 numbers.

Next, Created a if condition that checks for the biggest in three numbers.

First if condition checks if number1 is greater than number2 and number3. If the number1 is biggest then it is printed onto the console with println() method.

Second if condition checks if number2 is greater than number1 and number3. If the number2 is biggest then it is printed onto the console with println() method.

If any case above two if conditions are failed then last else condition that decides the number3 is the biggest one. Here no need to check number3 is greater than number1 and number2. Because first two coditions are confirmed number1 and number2 are not biggest in these 3 numbers. So, the remaining number3 is the largest.


public class Largest3NumbersExample1 {

	public static void main(String[] args) {

		int number1 = 10;
		int number2 = 20;
		int number3 = 30;

		if (number1 >= number2 && number1 >= number3) {
			System.out.println(number1 + " is the biggest");
		} else if (number2 >= number1 && number2 >= number3) {
			System.out.println(number2 + " is the biggest");
		} else {
			System.out.println(number3 + " is the biggest");
		}

	}

}

Output:
30 is the biggest

3. Example 2 To Find The Largest Three Numbers Using nested If-Else Condition


Let us use the nested if condition to get the largest from 3 numbers.

Nested if condition means using if condition inside if condition as below.
public class Largest3NumbersNestedIfExample {

	public static void main(String[] args) {

		int number1 = 10;
		int number2 = 20;
		int number3 = 30;

		if (number1 >= number2) {
			if (number1 >= number3) {
				System.out.println(number1 + " is the biggest");
			} else {
				System.out.println(number3 + " is the biggest");
			}
		} else {
			if (number2 >= number3) {
				System.out.println(number2 + " is the biggest");
			} else {
				System.out.println(number3 + " is the biggest");
			}
		}

	}

}

The above example also produces the output same as in above section.

Here, we have separated each if condition and moved into another if condition inside.

4. Example 3 - Optimized code to find the biggest from 3 numbers


We can reduce the number of comparisons as below in the second if condition.
public class Largest3NumbersOptimizedExample1 {

	public static void main(String[] args) {

		int number1 = 1000;
		int number2 = 2000;
		int number3 = 300;

		int max = number1;

		if (number1 >= number2 && number1 >= number3) {
			max = number1;
		} else if (number2 >= number3) {
			max = number2;
		} else {
			max = number3;
		}

		System.out.println(max + " is biggest number");
	}

}

Output:
2000 is biggest number

5. Example 4 - Optimized code to find the biggest from 3 numbers


In the above example, first condition has two operations. Just think once how it can be reduced to single operation.

Let us think about another approach.

Take first two numbers and find the biggest from them. Assume this is the current max at this time.

Next step, compare the current max and number3. 

At last, you will have the biggest among three numbers.
public class Largest3NumbersOptimizedExample2 {

	public static void main(String[] args) {

		int number1 = 1000;
		int number2 = 2000;
		int number3 = 300;

		int max = number2;

		if (number1 >= number2) {
			max = number1;
		}

		if (number3 >= max) {
			max = number3;
		}

		System.out.println(max + " is biggest number");
	}

}

This program works for all inputs and tested with positive, negative numbers.

6. Conclusion


In this article, you've seen how to find the biggest number from three numbers.

Shown various examples using if else and nested if condition.

Finally, discussed the optimized and the best way to do this.

All examples shown are over GitHub.





No comments:

Post a Comment

Please do not add any spam links in the comments section.