Τετάρτη 15 Φεβρουαρίου 2017

Βελτιωμένος Bubblesort

Ο Αλγόριθμος παρακάτω αποτελεί μια βελτιωμένη εκδοχή του Αλγόριθμου Ταξινόμησης ευθείας ανταλλαγή (BubbleSort).
Μια λογική μεταβλητή (setnotdone), αλλάζει την τιμή της ανάλογα με το αν έχει προηγηθεί ανταλλαγή ανάμεσα σε στοιχεία της ταξινομούμενης λίστας, και ελέγχεται πριν το επόμενο "σάρωμα" της λίστας, ώστε να αποφεύγονται οι περιττές επαναλήψεις σε ήδη ταξινομημένη λίστα.
--------------------------------------------------------------------------------------------------------

def  bubblesort(mylist)
      N=len(mylist)
      setnotdone=True
      i=1
     while i<N and setnotdone==True:
            setnotdone=False
            for j in range (N-1,i-1,-1):
            if mylist[j]<mylist[j-1]:
                 mylist[j-1],mylist[j]=mylist[j],mylist[j-1]
                 setnotdone = True
            i = i+1

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου