• divider and conquer (break problem into smaller problems)
  • non-stable (switch elements even if they have the same value)
  • comparison sort (comparing the values of elements through values such as transitivity)
  • operates in-place (does not add or remove items from an array)

Solution 1

Solution 2

References

https://stackoverflow.com/questions/8845154/how-does-the-fibonacci-recursive-function-work https://codeburst.io/learn-and-understand-recursion-in-javascript-b588218e87ea https://itnext.io/a-sort-of-quick-guide-to-quicksort-and-hoares-partitioning-scheme-in-javascript-7792112c6d1