Skip to content
Go back

Find the Minimum in an Array: A Step-by-Step Guide

Published:  at  07:12 AM

Have you ever felt like a gold prospector, sifting through piles of data to find that shining nugget, that hidden minimum value in a sea of numbers? Today we’re going to build our own tool to find that treasure.

🔮 Problem Statement

We need to create a function that, given a list (or array) of integers, identifies and returns the smallest value present in it. The function should be efficient and capable of handling lists of different sizes, even lists containing only one element.

Parameters:

Return Value:

Examples:

>>> min_in_array([1,2,3])
1
>>> min_in_array([5, 10, 100])
5
>>> min_in_array([11])
11

Additional Notes:

🧩 Step-by-Step Solution

Our approach is based on a simple principle: initially assume that the first element is the minimum and then compare each remaining element with that “provisional minimum”. If we find a smaller number, we update our “provisional minimum”.

min_val = arr[0]

This line initializes min_val with the first element of the array. It’s our initial assumption. We think: “Until proven otherwise, this is the winner.” 😎

Next, we need to examine each number in the array and see if any are smaller than our min_val. We’ll use a for loop to do this.

for n in arr:

This loop iterates over each element n of the array arr. For each number, we check if it is smaller than the current minimum value.

if min_val > n:
    min_val = n

If the current number n is less than min_val, then we update min_val with the new smaller number. This step is crucial because it ensures that we are always tracking the minimum value found up to that point.

Finally, after reviewing all the numbers in the array, min_val will contain the minimum value of the entire array.

return min_val

This line returns the minimum value found.

Here is the complete solution in code:

def min_in_array(arr):
	"level: easy; points: 1"
	min_val = arr[0]
	for n in arr:
		if min_val > n:
			min_val = n
	return min_val

🧠 Key Concepts

This simple solution encapsulates several fundamental concepts. First, iteration is crucial; we go through the array element by element, without leaving any unexamined. Comparison is the heart of the algorithm: at each step, we compare the current element with our current minimum, deciding whether we need to update our estimate. Update, conditional on the comparison, allows us to maintain an accurate representation of the minimum as we progress. Finally, the concept of an array (or list) as an ordered collection of elements is fundamental to understanding the nature of the problem and its solution. Did you know that some of the earliest programming languages, like FORTRAN, had strict limitations on the size of the arrays you could create, forcing programmers to be very resourceful with memory? 🤯

💫 Final Thoughts

This function, although simple, is a fundamental building block. We could extend it to handle empty arrays, raising an exception or returning a specific value (like None). We could also generalize it to work with any comparable data type (strings, dates, etc.) using custom comparison functions.

Furthermore, this type of problem is an excellent starting point for exploring more complex search and sorting algorithms, such as binary search or the selection sort algorithm.

If this article has been helpful to you, I invite you to explore more about basic algorithms and data structures on my blog. There’s a world of fascinating challenges waiting to be solved! See you in the next coding adventure! 🚀



Previous Post
Quick Range Sum: Optimization with Arithmetic Series
Next Post
Calculate Damage in Games: Formula, Python and SEO Optimization