Subjects

Subjects

More

Developing Algorithms Using Arrays

Learn with content from all year groups and subjects, created by the best students.

Developing Algorithms Using Arrays: AP Computer Science A Study Guide



Introduction

Greetings engineering czars and coding wizards! Today, we are going to dive deep into the world of arrays and algorithms. Arrays are like the filing cabinets of the coding world - handy for keeping your data organized and making it easy to sift through when you need to find something. By the end of this guide, you'll be the algorithm champion 🎉, capable of performing an array of amazing tricks (pun totally intended)! Let’s get started!



Standard Algorithms



Finding the Maximum and Minimum Values

First, let's hunt down those sneaky maximum and minimum values in an array. Finding these values will be as easy as finding the last slice of pizza at a party. 🍕

public static int maximum(int[] array) {
  int maxValue = array[0];
  for (int number: array) {
    if (number > maxValue) {
      maxValue = number;
    }
  }
  return maxValue;
}

public static int minimum(int[] array) {
  int minValue = array[0];
  for (int number: array) {
    if (number < minValue) {
      minValue = number;
    }
  }
  return minValue;
}
// Remember to initialize maxValue and minValue to the first element of the array to avoid logic traps!

If you initialize maxValue and minValue to 0, you might end up like a character in a tragic sitcom who can’t find his socks. Positive arrays might inadvertently have 0 as the minimum value (false alarm!), and negative arrays might mislabel 0 as the maximum value.



Finding a Sum

Summing up all elements in the array is like collecting all the jellybeans 🫘 you can find in a jar.

public static int sum(int[] array) {
  int sum = 0;
  for (int number: array) {
    sum += number;
  }
  return sum;
}


Finding a Mean

Calculating the mean of the array elements will help you find the average, just like figuring out how many Instagram 🧡 likes you get per post.

public static double mean(int[] array) {
  int sum = sum(array);
  return (double) sum / array.length;
}


Finding a Mode

For the mode, we search for the number that pops up most frequently. Think of it as finding Waldo in "Where's Waldo?" 🕵️‍♂️

public static int mode(int[] array) {
  int mostCommon = array[0];
  int mostCommonFrequency = 0;
  for (int i = 0; i < array.length - 1; i++) { 
    int currentFrequency = 1;
    for (int j = i + 1; j < array.length; j++) { 
      if (array[j] == array[i]) {
        currentFrequency++; 
      }
    }
    if (currentFrequency > mostCommonFrequency) {
      mostCommon = array[i];      
      mostCommonFrequency = currentFrequency;
    }
  }
  return mostCommon;
}


Determining If All Values Have a Certain Property

Do you think it’s possible for every value in an array to be even? Let’s find out with some code magic.

public static boolean isEven(int[] array) {
  for (int number: array) {
    if (number % 2 != 0) {
      return false;
    }
  }
  return true;
}


Accessing All Consecutive Sequences

Let’s pull all consecutive sequences of a given length from the array! It’s like creating a mini playlist from a long music album. 🎵

public static void returnAllConsecutiveSequences(int[] array, int length) {
  for (int i = 0; i <= array.length - length; i++) {
    for (int j = 0; j < length; j++) {
      System.out.print(array[i + j] + " ");
    }
    System.out.println();
  }
}


Checking for Duplicates

No one likes duplicates, especially when it’s like getting two copies of the same birthday present 🎁. Let’s see if our array has duplicate elements.

public static boolean duplicates(int[] array) {
  for (int i = 0; i < array.length - 1; i++) {
    for (int j = i + 1; j < array.length; j++) {
      if (array[j] == array[i]) {
        return true;
      }
    }
  }
  return false;
}


Determining the Frequency of Even Numbers

Maybe you've walked into a room full of even numbers and wondered just how many there are. Here’s how to count them!

public static int evenFrequency(int[] array) {
  int numberEven = 0;
  for (int number: array) {
    if (number % 2 == 0) {
      numberEven++;
    }
  }
  return numberEven;
}


Shifting Elements One Index Left

Shifting elements to the left is like a conga line 🕺🏻 moving one step to the left.

public static int[] shiftLeft(int[] array) {
  int firstItem = array[0];
  for (int i = 0; i < array.length - 1; i++) {
    array[i] = array[i + 1];
  }
  array[array.length - 1] = firstItem; 
  return array;
}


Shifting Elements One Index Right

And shifting elements to the right? Well, it’s just a dance move in the opposite direction! 🎶

public static int[] shiftRight(int[] array) {
  int lastItem = array[array.length - 1];
  for (int i = array.length - 1; i > 0; i--) {
    array[i] = array[i - 1]; 
  }
  array[0] = lastItem; 
  return array;
}


Reversing an Array

Reversing an array is like watching a movie backward 📼 – the end becomes the beginning.

public static int[] reverse(int[] array) {
  int[] newArray = new int[array.length];
  for (int i = 0; i < array.length; i++) {
    newArray[i] = array[array.length - 1 - i];
  }
  return newArray;
}


Key Terms to Review

  • Algorithm: Step-by-step procedures designed to solve specific problems or perform tasks.
  • Array: A collection of elements of the same type stored in contiguous memory locations.
  • Duplicates: Elements that appear more than once in an array.
  • EvenFrequency: Occurrence of an element that appears an equal number of times as other elements.
  • IsEven: A function that checks if a number is divisible by 2 without leaving a remainder.
  • Maximum: The largest value in a set of numbers.
  • Mean: Average value of a set of numbers.
  • MinValue: The smallest value in a set of numbers.
  • Mode: The most frequently occurring value in a set of data.
  • ReturnAllConsecutiveSequences: A function that returns all consecutive subarrays of a given length.
  • Reverse: Changing the order of elements in an array.
  • ShiftLeft: Moving all elements in an array one position to the left.
  • ShiftRight: Moving all elements in an array one position to the right.
  • Sum: The total obtained by adding numbers together.
  • Traversals: The process of visiting each element in a data structure exactly once.


Conclusion

Congratulations! You now wield the power of arrays and algorithms! 🎉 With this newfound knowledge, you can masterfully manipulate arrays and craft algorithms that would make even the most seasoned coder proud. Now, go forth and code like the wizard you are! 🚀🌟

Knowunity is the # 1 ranked education app in five European countries

Knowunity was a featured story by Apple and has consistently topped the app store charts within the education category in Germany, Italy, Poland, Switzerland and United Kingdom. Join Knowunity today and help millions of students around the world.

Ranked #1 Education App

Download in

Google Play

Download in

App Store

Knowunity is the # 1 ranked education app in five European countries

4.9+

Average App Rating

13 M

Students use Knowunity

#1

In Education App Charts in 12 Countries

950 K+

Students uploaded study notes

Still not sure? Look at what your fellow peers are saying...

iOS User

I love this app so much [...] I recommend Knowunity to everyone!!! I went from a C to an A with it :D

Stefan S, iOS User

The application is very simple and well designed. So far I have found what I was looking for :D

SuSSan, iOS User

Love this App ❤️, I use it basically all the time whenever I'm studying

Can't find what you're looking for? Explore other subjects.