From: Tamara Temple Date: 2013-07-28T14:17:16+09:00 Subject: Re: Working through Ch.10 for learning to program 2.0 (Chris Pine) On Jul 27, 2013, at 8:26 PM, JD JD wrote: > So, I have been working through this book, and have been doing ok up > until ch. 10. > > I'm in the part of the chapter where it asks us to generate our own > sorting method (once with recurssion and once without). > > They gave a shell example of code. However, I'm completely lost. This > is what I came up with so far, however I really have no idea what to do > at this point. Could someone possibly point me in the right direction? > Recurrsion also is very confusing. I get the idea of it with > factorials, but beyond that and it gets a little confusing. Here is > what I have so far, and I would appriciate any help: > -------------------------------------- > puts "Enter some words" > some_array=[] > > while true > some_array=gets.chomp > if some_array=="" > break > end > > sort some_array > end > #This is where I would print out after this puts the solution > puts "Here is the sorted list" > > #Wrapper method suggested in the book > def sort some_array > recursive_sort some_array, [] > end > > #Actual method used to make this happen, and also where I'm confused > def recursive_sort unsorted_array, sorted_array > #Probably doing this wrong. Basically, I want to > #either push the smallest word into sorted_array > #or go down the list and find the smallest, then add it and > start > #Over. However, I could be thinking about this completely wrong > #Could someone point me in the right direction with this? > if unsorted_array[0]>unsorted_array[1] > sorted_array.push unsorted_array[1] > else > recursive_sort > end > > -- > Posted via http://www.ruby-forum.com/. > Confusion is certainly understandable at this point -- recursion can be a tricky subject to understand. While it is generally true that you can write algorithms in either a looping or recursive fashion, *how* to do so isn't necessarily clear. Also, some sort algorithms lend themselves quite well to one or the other, but not both. I haven't read Learning to Program, so I'm not sure what Chris is including in this. Sort algorithms would be a natural I'd think. If he doesn't include the algorithms, WikiPedia does describe standard algorithms pretty well. If you'd like something to look at to get you over the hump, so to speak, let me know. If you've gotten the iterative (non-recursive) sorting method working, maybe show that.