lecture8

lecture8 - 1 Monday,Jan31 st Recursion HowtodesignanObject...

Info iconThis preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon
1 Monday, Jan 31 st   Recursion How to  design  an Object  Oriented program
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 Recursion! Building a  SuDoKu  solver! Even cracking  codes  and  ciphers ! Recursion is one of the most  difficult topics  in Computer  Science… But once you master it, you  can  solve  all sorts of  cool  problems !         Writing a computer         program that can          play  chess  or  checkers !
Background image of page 2
3 Recursion! Recursion  is a programming technique where a  function calls itself void  bottlesOfBeer (int b) {     if (b > 0)       {          cout << b << “ bottles of beer on the wall…”;        cout << b << “ bottles of beer…”;        cout << “take one down, pass it around…”;         bottlesOfBeer (b-1);       } } Initially, you’ll find recursion more confusing than traditional  programming… But once you understand it, you’ll find it to be extremely powerful (and for  many problems, simpler)!
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 “The Lazy Person’s Sort” Let’s design a new  sorting algorithm,  called the  “lazy person’s sort”… Lazy Person’s Sort:   Split the cards into two roughly-equal piles   Hand one pile to nerdy student A and ask them to sort it   Hand the other pile to nerdy student B and ask them to sort it   Take the two sorted piles and merge them into a single sorted pile The input to this sort are a  bunch of index cards with  #s. 6 22 17 3 95 14 6 22 17 3 95 14
Background image of page 4
5 “The Lazy Person’s Sort” Lazy Person’s Sort:   Split the cards into two roughly-equal piles   Hand one pile to nerdy student A and ask them to sort it   Hand the other pile to nerdy student B and ask them to sort it   Take the two sorted piles and merge them into a single sorted pile 95 22 17 14 6 3 Pretty good!  All I had to do  was merge two piles of sorted  cards! (My nerdy students did all  the real work!) Well that worked so well, I  think I’ll have them sort the  other six hundred!     17 61492 2774 99322 That sucks. Sorting 3 cards  was OK… but 300? I don’t  know where to start! Yeah right. Hey, you’re kind  of cute when you’re angry! <blush>Thanks</blush> But what can we do? I think I have an idea.  We  can be lazy too, let’s change  Carey’s algorithm just a bit.
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
6 “The Lazy Person’s Sort” Lazy Person’s Sort:   Split the cards into two roughly-equal piles   Hand one pile to nerdy student A and ask them to sort it   Hand the other pile to nerdy student B and ask them to sort it   Take the two sorted piles and merge them into a single sorted pile     17 61492 2774 99322 hot say “do the Lazy Person’s Sort” say “do the Lazy Person’s Sort” Oh yeah… One more thing.
Background image of page 6
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 91

lecture8 - 1 Monday,Jan31 st Recursion HowtodesignanObject...

This preview shows document pages 1 - 7. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online