Sorting Algorithms: Glossary

    Sorting Algorithms: Glossary

      Asymptotic Behavior: What happens to a function or algorithm when we give it numbers bigger than Google's estimated result size? What's the runtime?

      Comparison sort: Sorting things by comparing them. Bubble sort, insertion sort, merge sort, and quick sort are all based on comparisons.

      Decision tree: A handy way of showing the number of ways a comparison-based algorithm can sort things.

      Divide-and-conquer algorithms: Algorithms that find a solution by dividing the problem into sub-problems. They have to find the solution to those sub-problems before solving the original problem.

      For loop: A handy way of making lines of code run more than once without copying and pasting.

      Logarithm: Turning multiplication into addition. There's a fancy math definition, but all we need to know is that if we keep splitting something in half, we'd need to double the size of the thing before adding another cut.

      Non-comparison sort: Sorting things without comparing them. Radix sort relies on the values of the numbers instead of worrying about comparing.

      Procedural code: Running lines one after another.

      Pseudocode: Code for humans, not computers. It's meant to be readable—not executable.

      Recursion: To understand recursion, you need to first understand recursion. When you cut something and it turns into a smaller, identical copy of itself, that's recursion.

      Runtime Analysis: How long it takes your algorithm to run in a race. If your definition of a race is giving it lists of arbitrary length and seeing how quickly it handles them.