Sorting algorithms are essential to the creation of powerful and efficient programs, for almost any circumstance when we need to arrange the data for our user in a certain order. Doing this can make it significantly faster for a human, or even computer, to parse and understand this data to make business decisions. We will explore how each of these sorting methods are different and how to implement them. We will also briefly cover how to access these methods using built-in Java functions. In this course we will cover bubble sort, insertion sort, merge sort, selection sort, and quicksort. These five sorting techniques span a variety of efficiencies and use cases in real life. They also all are easy to implement with knowledge of arrays, recursion, and loops in Java.