Άσκηση 6 – Φθίνουσα και αύξουσα ταξινόμηση με συνάρτηση

Να γράψετε συνάρτηση η οποία δέχεται ως παραμέτρους μια αριθμητική λίστα και έναν ακέραιο αριθμό. Η συνάρτηση να ταξινομεί τη λίστα ανάλογα με την τιμή του ακεραίου αριθμού που δέχεται, αν ο αριθμός είναι 1 πραγματοποιείται αύξουσα ταξινόμηση ενώ αν είναι 2 πραγματοποιείται φθίνουσα ταξινόμηση. Μετά την ταξινόμηση εμφανίζει την ταξινομημένη λίστα. Για την ταξινόμηση να χρησιμοποιηθεί ο αλγόριθμος ευθείας ανταλλαγής.

Λύση

#Ταξινόμηση ευθείας ανταλλαγής με συνάρτηση
def sort2(L,x):  
     N=len(L)  
     if x==1: 
         print 'Αύξουσα ταξινόμηση..'  
         for i in range(N-1): 
             for j in range(N-1, i, -1): 
                 if L[j-1]> L[j]: 
                     L[j-1],L[j]=L[j],L[j-1] 
         print L 
     else: 
         print 'Φθίνουσα ταξινόμηση..' 
         for i in range(N-1):
             for j in range(N-1, i, -1): 
                 if L[j-1]< L[j]:
                     L[j-1],L[j]=L[j],L[j-1]
         print L

Αρχείο python 2.7.9: Άσκηση 6 – Συναρτήσεις – Ταξινόμηση (αρχείο py)