Mergesort problem
Deborah Swanson
python at deborahswanson.net
Wed Dec 21 21:27:46 EST 2016
> On Thu, Dec 22, 2016 at 11:55 AM, Deborah Swanson
> <python at deborahswanson.net> wrote:
> > The problem is that while mergeSort puts the list ls in
> perfect order,
> > which I can see by looking at result on merge's final return to
> > mergeSort, and at the left and the right once back in
> mergeSort. Both
> > the left half and the right half are in order. But the list
> L is still
> > in its original order, and after mergeSort completes, ls is
> still in
> > its original order. Maybe there's some bonehead error causing this,
> > but I just can't see it.
> >
>
> Your analysis is excellent. Here's what happens: When you
> merge-sort, you're always returning a new list (either
> "return L[:]" or "result = []"), but then you call it like this:
>
> # sort: Description only, to make hyperelinks & find duplicates
> mergeSort(ls)
>
> This calls mergeSort, then drops the newly-sorted list on the
> floor. Instead, try: "ls = mergeSort(ls)".
>
> Thank you for making it so easy for us!
>
> ChrisA
"ls = mergeSort(ls)" works perfectly!
I can see why now, but I'm not sure how long I would have knocked my
head against it before I saw it on my own. It must take awhile to
develop an eye for these things.
So thank you from the bottom of my heart! I do have a future in python
coding planned, but right now I need to find the cheapest nice little
house to move to, and this sorting problem was a major roadblock! The
webpage titles and urls are from Craigslist, soon to be joined by many
other fields, but I just couldn't get past this one problem.
More information about the Python-list
mailing list