This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:discrete:fall2023:projects:mor0 [2023/11/15 17:44] – [Properties of Recursion] walley | notes:discrete:fall2023:projects:mor0 [2023/11/16 01:24] (current) – [Matrix] cfoster8 | ||
---|---|---|---|
Line 13: | Line 13: | ||
Like arrays, Matrices are fixed in size. You allocate the memory for it when created and it cannot be changed. | Like arrays, Matrices are fixed in size. You allocate the memory for it when created and it cannot be changed. | ||
+ | In theory, a matrix can have as many dimensions as you want. As many times as you can nest an array in an array, a matrix of that many dimensions can be created. Because that's all a matrix is, at least this type of matrix, an array of arrays to the nth degree. | ||
=====Recursion===== | =====Recursion===== | ||
The concept of recursion is actually simple but implementing it is more challenging than you might think. Recursion works by creating a function that calls itself until it hits a base case to end/ | The concept of recursion is actually simple but implementing it is more challenging than you might think. Recursion works by creating a function that calls itself until it hits a base case to end/ | ||
Line 45: | Line 46: | ||
A stack overflow occurs when a recursive function is never properly broken and repeats indefinitely until memory (the stack) is used up. This happens when the base case condition check is faulty or nonexistent. | A stack overflow occurs when a recursive function is never properly broken and repeats indefinitely until memory (the stack) is used up. This happens when the base case condition check is faulty or nonexistent. | ||
+ | |||
+ | ====Why Use Recursion Instead of a Loop?==== | ||
+ | |||
+ | There are several differences between loops and recursion. A couple of them being: | ||
+ | * Loop uses repetition to go over sequential data, while recursion uses a selection structure. | ||
+ | * Loops are less memory and processor intensive than recursive functions. | ||
+ | |||
+ | Recursion does have its advantages over loops though. | ||
+ | * The code is easier to understand and is generally shorter. | ||
+ | * Recursion can solve some problems that normal loops can not. | ||
+ |