Merge Sortalgorithm, and worked on implementing it recursively at the very least. If you attempted to implement it iteratively; you may well have found the approach to implementing it vastly different to the recursive counter part.
Merge sortin your previous project. With this algorithm, you split the original algorithm into two chunks, and then merge sort the individual chunks, further breaking down those chunks and building them back up in sorted order. This is a
Divide and Conqueralgorithm. This is an algorithm that commonly sees use built into some languages.
Merge Sort, and an algorithm that commonly sees use, Quicksort is another efficient sorting algorithm that is typically faster than Merge Sort if implemented well. In the very worst cases, however,
Divide and Conqueralgorithm, which finds a pivot some point in the array, and partitions the array into two sub arrays, depending on whether the element's value is comparatively less than or greater than the pivot. This process is repeated on both sub arrays, and the sub arrays are joined with the pivot to return the sorted array.
Insertion Sortan advantage in these specific situations. If you were to put data into a sorted array into it's correct position, you're essentially performing an
Insertion Sort; Bubble Sort is also not a great idea for use in largely unsorted datasets. It works by comparing each two consecutive elements in an array, and swapping them if they're not in order; and once the end of the array is reached, will repeat the entire process again until no swaps need to be made.
Linear Searchis an example of this. You will have most certainly used this method when iterating through your arrays in previous projects. The biggest advantage with this paradigm is that it can reliably handle unsorted data sets.
Binary Searchstarts off at the mid point of a dataset. If the mid point does not have the value the algorithm wants, the search moves to the point between the mid point and the beginning/end of the array, depending on whether the wanted value is less than or greater than the currently looked at value. This process is then repeated in the sub section of the array from beginning to mid point or mid point to end of the array. Rinse and repeat until the value is found or no value is found!