Programming languages will often use arrays to store data. An array is a series of memory values that stores information for use by an end user, and there is a lot of code that goes into manipulating and utilizing arrays. There are many different algorithms that are used to sort arrays and find the numerical values that they store, and if you couldn’t do either of these things, then arrays would have little value as a data structure. If you aren’t sure how arrays work or what they are used for, here are a few of the basics.

## Why An Array?

Arrays often all have values of the same data type, so if you have an array, you should ideally know what’s in it or at least know how to work with it in some way. Most often, an array will be a collection of integers (that is, whole numbers) that are being stored for use in a computation by a program. Arrays can also contain other data types like strings and chars, too, but most searching and sorting algorithms are written with numerical values in mind, so they can be compared to each other. Python libraries like NumPy are particularly useful for this purpose, and if you can find existing algorithms for manipulating arrays and tailor them to your needs, it’s all the better.

## Array Sorting

Once you know what you want in your array, it will help you immensely if you keep what you put in your array organized. If you just use np.append to put everything in an array, you lose some of the functionality that an array provides, and you may as well have used a different data structure for the same purpose anyway.

You can only interact with the topmost value of a stack, a different kind of data structure that follows a last-in-first-out format, and while it has its own uses, it lacks the flexibility of an array. Sorting an array can be done by a number of means, from the relatively simple “selection sort” to the more complex recursive algorithms like the “merge sort.” Different sorting algorithms have their own ups and downs, so if you need a fast sorting algorithm, make sure to understand what its possible shortcomings might be and how they might affect the application of your array.

## Array Searching

The primary reason arrays exist is to store information, and it helps a lot to know how the info in an array is sorted. If you have a sorted array of uniformly distributed numbers, for example, like those created by np.arange, you can use what’s called an “Interpolation Search” to find a specific value in that array. The algorithm for an Interpolation Search is based on the algorithm for a Binary Search, so if you don’t have an array that’s uniformly distributed, you could try that one instead, and you might have more success actually finding the value stored in the array that you are looking for in a reasonable amount of time. Whether or not you’re worried about the computation time of searching a 1,000-element array, it’s generally good practice to try to use the right solution for the right problem, so if you’re going into computer science, you shouldn’t be afraid to do a little math (okay, a lot of math) to get to the right solution.

Computer science is a field that requires more math than you might think; the number of operations a computer has to do to make use of an algorithm can be huge if you try to use an inefficient algorithm, even if it works well enough for small arrays. Arrays find their value in how they can be used as a method of data storage and retrieval, so if you are going to use one in a practical way, you need to put thought into its place in the larger scope of your programming project.