Hello,

This is follow up on a question I had about algorithms. In the thread it was suggested I make my own sorting algorithm.

Here are my results.

#!/usr/bin/python

def sort_(list_):
   for item1 in list_:
       pos1 = list_.index(item1)
       pos2 = pos1 + 1
       try:
           item2 = list_[pos2]
       except IndexError:
           pass

       if item1 >= item2:
           try:
               list_.pop(pos2)
               list_.insert(pos1, item2)
               return True
           except IndexError:
               pass

def mysorter(list_):
   while sort_(list_) is True:
       sort_(list_)

I found this to be a great exercise. In doing the exercise, I got pretty stuck. I consulted another programmer (my dad) who described how to go about sorting. As it turned out the description he described was the Bubble sort algorithm. Since coding the solution I know the Bubble sort is inefficient because of repeated iterations over the entire list. This shed light on the quick sort algorithm which I'd like to have a go at.

Something I haven't tried is sticking in really large lists. I was told that with really large list you break down the input list into smaller lists. Sort each list, then go back and use the same swapping procedure for each of the different lists. My question is, at what point to you start breaking things up? Is that based on list elements or is it based on memory(?) resources python is using?

One thing I'm not pleased about is the while loop and I'd like to replace it with a for loop.

Thanks,

T
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to