Back to: Data Structures and Algorithms Tutorials

**How to Find Maximum and Minimum Element in a Single Scan**

In this article, I am going to discuss **How to Find Maximum and Minimum Elements in an array in C Language in a Single Scan** with Examples. In our previous article, where we discussed **How to a Pair of Element with Sum K from a sorted Array in C** Language with Examples

**Find Maximum and Minimum Element from an Array in a Single Scan:**

We have seen how to find maximum elements in our previous articles. But here we want to do this simultaneously in a single scan.

We have taken an unsorted array of size 10. We have to find the max and min elements in this array. So letâ€™s take two variables max and min to trace the array for maximum and minimum elements.

Letâ€™s assign these two variables to C [0]. So, **max = 6, min = 6, **Now take another variable â€˜jâ€™ at C [1]:

Now j is pointing on 3. So, we will check here, If 3 < min? Yes, so modify the min variable and assign it to 3, 3 is less than min so, we donâ€™t need to check for the max variable. So, variables are: **max = 6, min = 3, **Now move to the next element:

Now j is pointing on 8. So, we will check here, If 8 < min? No, then check, If 8 > max? Yes, so modify the max variable and assign it to 8. Variables are: **max = 8, min = 3, **Now move to the next element:

Now j is pointing on 5. Variables are: **max = 8, min = 3**. So, we will check here, If 5 < min? No, then check, If 5 > max? No, so move to the next element:

Now j is pointing on 4. Variables are: **max = 8, min = 3.** So, we will check here, If 4 < min? No, then check, If 4 > max? No, so move to the next element:

Now j is pointing on 9. Variables are: **max = 8, min = 3.** So, we will check here, If 9 < min? No, then check, If 9 > max? Yes, so modify the max variable and assign it to 9. Variables are: **max = 9, min = 3, **Now move to the next element:

Now j is pointing on 10. Variables are: **max = 8, min = 3.** So, we will check here, If 10 < min? No, then check, If 10 > max? Yes, so modify the max variable and assign it to 10. Variables are: **max = 10, min = 3, **Now move to the next element:

Now j is pointing on 2. Variables are: **max = 10, min = 3.** So, we will check here, If 2 < min? Yes, so modify the min variable and assign it to 2, 2 is less than min so, we donâ€™t need to check for the max variable. So, variables are: **max = 10, min = 2, **Now move to the next element:

Now j is pointing on -1. Variables are: max = 10, min = 2. So, we will check here, If -1 < min? Yes, so modify the min variable and assign it to -1, -1 is less than min so, we donâ€™t need to check for the max variable. So, variables are: **max = 10, min = -1, **Now move to the next element:

Now j is pointing on 7. Variables are: **max = 10, min = -1.** So, we will check here,

If 7 < min? No, then check,

If 7 > max? No, so here we have traced the whole array and we get the maximum and minimum elements in a single scan: **max = 10, min = -1.**

**Time Complexity: O (n)**

**Minimum Time:**if the list is in descending order i.e. 10, 8, 6, 5, 4, 2â€¦ Here only one condition is executing which is for checking the min element in every iteration. So, Total No. of comparison: n-1 (Best Case)**Maximum Time:**if the list is in ascending order i.e. 1, 2, 3, 4, 6, 8â€¦ Here both the conditions will execute in every iteration for checking min as well as max. So, Total No of comparisons: 2 * (n-1) (Worst Case)

**Find Maximum and Minimum from an Array in a Single Scan Code in C Language:**

#include <stdio.h> #include <stdlib.h> struct List{ int C[15]; int size; int length; }; void Display(struct List list) { int i; printf("Elements are:\n"); for (i = 0;i<list.length;i++) printf("%d ", list.C[i]); printf("\n\n"); } void MaxAndMin(struct List list){ int max = list.C[0], min = list.C[0]; for(int i = 1; i < list.length; i++){ if(list.C[i] < min){ min = list.C[i]; } else if(list.C[i] > max){ max = list.C[i]; } } printf("Max Element: %d\nMin Element: %d", max, min); } int main(){ struct List list_1 = {{6, 3, 8, 5, 4, 9, 10, 2, -1, 7}, 10, 10}; Display(list_1); MaxAndMin(list_1); }

**Output:**

In the next article, I am going to discuss **Matrices** with Examples. Here, in this article, I try to explain **How to find maximum and minimum elements present in an array in C Language **with Examples and I hope you enjoy this Finding maximum and minimum elements present in an array in C Language with Examples article.

**About the Author: Pranaya Rout**

Pranaya Rout has published more than 3,000 articles in his 11-year career. Pranaya Rout has very good experience with Microsoft Technologies, Including C#, VB, ASP.NET MVC, ASP.NET Web API, EF, EF Core, ADO.NET, LINQ, SQL Server, MYSQL, Oracle, ASP.NET Core, Cloud Computing, Microservices, Design Patterns and still learning new technologies.