recursion
play

Recursion Checkout Recursion project from SVN Let us group related - PowerPoint PPT Presentation

Recursion Checkout Recursion project from SVN Let us group related classes Weve been using them: javax.swing java.awt java.lang Can (and should) group our own code into packages Eclipse makes it easy By


  1. Recursion Checkout Recursion project from SVN

  2.  Let us group related classes  We’ve been using them: ◦ javax.swing ◦ java.awt ◦ java.lang  Can (and should) group our own code into packages ◦ Eclipse makes it easy…

  3.  By Douglas Hofstadter  Argues that intelligence arises (in part) because of our ability ty to think nk about ut think nking ng

  4.  A solution technique where the same computation occurs s repeat eatedly edly as the problem is solved recurs

  5.  If each red block has Triangle with width 1 area 1, what is the area A(n) of the Triangle Triangle with width 2 whose width is n? ◦ Answer: A(n) = n + A(n-1)  The above holds for Triangle with width 3 which n ? What is the answer for other n ? ◦ Answer: The recursive equation holds for n > 1. For n = 1, the area is 1. Triangle with width 4

  6. 3. Write class name (for static method) or draw 1. Draw box when method starts reference to object (for non-static method) 2. Fill in name and first line no. method name, line number scope box parameters and local variables 5. List every local variable declared 4. List every parameter in the method, but no v values yet and its argument value. 6. Step through the method, update the line number and variable values, draw new frame for new calls Thanks for David Gries for 7. “Erase” the frame when the method is done. this technique Q1-Q2

  7.  Trace the buildSha dShape pe(M (MAX_D AX_DEPTH PTH) method call in shapes.Main apes.Main ’s main method

  8. I may have also tossed one of a pair of teleportation rings into the ocean with interesting results.

  9.  Always have a base e case that doesn’t recurs rse  Make sure recursive case always makes progre gress ss, by solvi ving g a smaller er probl blem em  You go gotta bel eliev eve ◦ Trust in the recursive solution ◦ Just consider one step at a time

  10.  Add a recursive method to Sentence for computing Sentence whether Sentence is String text a palindrome String toString() boolean isPalindrome

  11.  Our isPalindrome() makes lots of new Sentence objects  We can make it better with a “recursive helper method”  Many recursive problems require a helper method public boolean isPalindrome() { return isPalindrome(0, this.text.length() – 1); } Position of last letter of the Position of first letter of the remaining String to check remaining String to check

  12.  Reverse a string…recursively!  A recursive helper can make this really short!

  13.  “If you already know what recursion is, just remember the answer. Otherwise, find someone who is standing closer to Douglas Hofstadter than you are; then ask him or her what recursion is.” — Andrew Plotkin

  14.  Factorial: Base Case Recursive step  Ackermann function: Q3

  15. Homework 12: Sierpinski Q4-Q5

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend