Loading...

Section

Finding the Largest Number in a List

Part of The Prince Academy's AI & DX engineering stack.

Follow The Prince Academy Inc.

Now that we've explored the fundamental building blocks of algorithms, let's put them into practice with some simple, yet powerful, examples. Our first challenge is a common task: finding the largest number within a given list of numbers. This might seem straightforward, but it's a great way to see how a step-by-step approach can solve a problem efficiently.

Imagine you have a list of scores from a game, and you need to identify the highest score. How would you do this manually? You'd likely look at each score one by one, keeping track of the highest one you've seen so far. This manual process is exactly what an algorithm will do for us.

graph TD;
    A[Start]
    B{Initialize largest_number}
    C{Is there a next number in the list?}
    D{Compare current number with largest_number}
    E[Update largest_number if current is greater]
    F[Move to the next number]
    G{No more numbers}
    H[Output largest_number]
    I[End]

    A --> B
    B --> C
    C -- Yes --> D
    D --> E
    E --> F
    F --> C
    C -- No --> G
    G --> H
    H --> I

Let's break down the algorithm into steps. We need a way to keep track of the largest number we've encountered. We'll start by assuming the first number in the list is the largest. Then, we'll go through the rest of the numbers. For each number, we compare it to our current 'largest number'. If the current number is greater, we update our 'largest number' to be this new, bigger value. We repeat this process until we've checked every number in the list. The number we're holding onto at the end will be the largest one.

Here's how this logic translates into pseudocode, a way to describe an algorithm using a mix of natural language and programming-like constructs:

FUNCTION findLargestNumber(list):
  IF list is empty THEN
    RETURN null (or an error message)
  END IF

  largest_number = list[0]

  FOR EACH number IN list FROM index 1 to end:
    IF number > largest_number THEN
      largest_number = number
    END IF
  END FOR

  RETURN largest_number
END FUNCTION

And here's a JavaScript implementation to illustrate this algorithm in action. You can imagine this running in a browser or a Node.js environment.

function findLargestNumber(numbers) {
  if (!numbers || numbers.length === 0) {
    return null; // Or throw an error
  }

  let largestNumber = numbers[0];

  for (let i = 1; i < numbers.length; i++) {
    if (numbers[i] > largestNumber) {
      largestNumber = numbers[i];
    }
  }

  return largestNumber;
}

const myScores = [45, 82, 15, 99, 67, 30];
const highestScore = findLargestNumber(myScores);
console.log(`The highest score is: ${highestScore}`); // Output: The highest score is: 99

This simple algorithm, 'Find Largest Number', is a foundational concept. It demonstrates iteration (going through each item) and conditional logic (deciding whether to update our tracked value). As we progress, you'll see how these basic ideas are combined and extended to solve much more complex problems.