Find the Minimum Element in an Array
Problem Statement
Given an array of integers, the task is to find the minimum (smallest) element present in the array.
This problem is the counterpart of finding the maximum element and is widely used in optimization problems, statistical analysis, and preprocessing steps in many algorithms.
Why This Problem Matters
Finding the minimum element is essential in:
- Data normalization
- Range-based calculations
- Finding smallest values for decision-making systems
- Problems like minimum difference, sorting, and greedy algorithms
It strengthens understanding of comparative traversal logic in arrays.
Input and Output Format
Input
- An array arr of size n
Output
- A single integer representing the minimum element
Example
Input: arr = [12, 45, 7, 89, 23]
Output: 7
Approach 1: Linear Scan (Standard Method)
Idea
Traverse the array once and maintain the smallest value found so far.
Step-by-Step Algorithm
- Initialize minElement with the first element of the array
- Traverse the array from index 1 to n-1
- Compare the current element with minElement
- If the current element is smaller, update minElement
- After traversal, return minElement
Pseudocode
minElement = arr[0]
for i from 1 to n-1:
if arr[i] < minElement:
minElement = arr[i]
return minElement
Dry Run Example
arr = [12, 45, 7, 89, 23]
Step 1: min = 12
Step 2: compare 45 → min remains 12
Step 3: compare 7 → min = 7
Step 4: compare 89 → min remains 7
Step 5: compare 23 → min remains 7
Final Answer: 7
Time and Space Complexity
| Metric | Value |
|---|---|
| Time Complexity | O(n) |
| Space Complexity | O(1) |
Language-wise Implementation
C Implementation
#include
int main() {
int arr[] = {12, 45, 7, 89, 23};
int n = sizeof(arr) / sizeof(arr[0]);
int minElement = arr[0];
for(int i = 1; i < n; i++) {
if(arr[i] < minElement) {
minElement = arr[i];
}
}
printf("Minimum Element = %d", minElement);
return 0;
}
Output
Minimum Element = 7
C++ Implementation
#include
using namespace std;
int main() {
int arr[] = {12, 45, 7, 89, 23};
int n = sizeof(arr) / sizeof(arr[0]);
int minElement = arr[0];
for(int i = 1; i < n; i++) {
if(arr[i] < minElement) {
minElement = arr[i];
}
}
cout << "Minimum Element = " << minElement;
return 0;
}
Java Implementation
public class Main {
public static void main(String[] args) {
int[] arr = {12, 45, 7, 89, 23};
int minElement = arr[0];
for(int i = 1; i < arr.length; i++) {
if(arr[i] < minElement) {
minElement = arr[i];
}
}
System.out.println("Minimum Element = " + minElement);
}
}
Python Implementation
arr = [12, 45, 7, 89, 23]
min_element = arr[0]
for num in arr:
if num < min_element:
min_element = num
print("Minimum Element =", min_element)
C# Implementation
using System;
class Program {
static void Main() {
int[] arr = {12, 45, 7, 89, 23};
int minElement = arr[0];
for(int i = 1; i < arr.Length; i++) {
if(arr[i] < minElement) {
minElement = arr[i];
}
}
Console.WriteLine("Minimum Element = " + minElement);
}
}
JavaScript Implementation
let arr = [12, 45, 7, 89, 23];
let minElement = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < minElement) {
minElement = arr[i];
}
}
console.log("Minimum Element =", minElement);
Alternative Approach (Built-in Functions)
- Python: min(arr)
- JavaScript: Math.min(...arr)
These are concise but manual traversal is preferred in interviews.
Edge Cases to Consider
- Array with a single element
- Array with all negative numbers
- Duplicate minimum values
- Very large arrays
- Empty array (should be validated before use)
Common Mistakes
- Initializing minElement with 0
- Ignoring negative numbers
- Incorrect loop bounds
- Not handling empty arrays
Interview Notes
Interviewers assess:
- Correct initialization
- Efficient traversal
- Comparison logic clarity
Follow-up problems may include:
- Minimum and maximum together
- Second smallest element
- Minimum difference in array
Summary
Finding the minimum element in an array is a fundamental operation that enhances understanding of array traversal and comparison techniques. It plays a vital role in many optimization and decision-making algorithms and serves as a base for more advanced array problems.
