Ασκήσεις στην python: Ταξινόμηση με διάφορα κριτήρια

Γενική οδηγία:

Αποθηκεύστε τα αρχεία που σας δίνονται στον υπολογιστή σας και χρησιμοποιώντας την υλοποίηση της python που προτιμάτε απαντήστε στην ερώτηση.

Ταξινόμηση

  • Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα μια λίστα με στοιχεία tuples με 2 όρους, που αντιστοιχούν σε ένα ρητό αριθμό. Π.χ. ο (m,n) αντιστοιχεί στο ρητό \(\frac{m}n\). Η συνάρτηση θα επιστρέφει επιστρέφει τη λίστα ταξινομημένη σε αύξουσα σειρά, με βάση τη παραπάνω αναπαράσταση των ρητών αριθμών. Δηλ. αν η L=[(1,-1),(1,2),(0,-1),(0.4,-0.5)] θα επιστρέψει L=[(1,-1), (0.4,-0.5),(0,-1),(1,2)]. Χρησιμοποιήστε την ταξινόμηση με επιλογή (selection sort). Sort6-rat-sort.py
    	
    #Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα μια λίστα 
    #με στοιχεία tuples με 2 όρους, που αντιστοιχούν στις 
    #συντεταγμένες ενός σημείου στο επίπεδο. Η συνάρτηση θα 
    #επιστρέφει επιστρέφει τη λίστα ταξινομημένη σε αύξουσα 
    #σειρά, με βάση το άθροισμα των τετραγώνων των συντεταγμένων
    # ενός σημείου. Δηλ. αν η L=[(1,-1),(1,2),(0,-1),(0.4,-0.5)] 
    #θα επιστρέψει L=[(0.4,-0.5),(0,-1),(1,-1),(1,2)].
    #Χρησιμοποιήστε την ταξινόμηση με επιλογή (selection sort).
    
    def selection_sort(L):
    # Κύριος αλγόριθμος ταξινόμησης με επιλογή	
    
    def find_min(L,b):
    # Αναζήτηση μικρότερου στοιχείου στο κομμάτι L[b:]
    
    def my_order(a,b):
    # ορισμός συνάρτησης διάταξης	
    
    # Κυρίως πρόγραμμα
    L = eval(input("Give list: "))
    	
  • Φτιάξτε μια συνάρτηση που να δέχεται ως όρισμα μια λίστα με tuples. Τα tuples αναπαριστούν τα χαρτιά μιας τράπουλας. Π.χ., ('Spade',1), ('Diamond',10). Διατάξτε τη λίστα ως προς το "χρώμα" των χαρτιών, με την ακόλουθη σειρά: 'Spade', 'Diamond', 'Clubs' και 'Hearts'. Τα χαρτιά ενός χρώματος θα είναι 1,2,3,..., 10,'Jack', 'Queen', και 'King'. Χρησιμοποιήστε την ταξινόμηση με εισαγωγή (insertion sort). Sort6-cards.py
    	
  • Φτιάξτε μια συνάρτηση που να δέχεται ως όρισμα μια λίστα με tuples. Τα tuples αναπαριστούν τα χαρτιά μιας τράπουλας όπως στην προηγούμενη άσκηση. Διατάξτε τη λίστα ως προς το "χρώμα" των χαρτιών, με την ακόλουθη σειρά: 'Spade', 'Diamond', 'Club' και 'Heart' και στη συνέχεια ως προς την "τιμή" τους, με τη συνήθη σειρά, δηλαδή 1,2,3,..., 10,'Jack', 'Queen', και 'King'. Δηλαδή η συνάρτηση διάταξης my_order() που θα ορίσεται θα δίνει True, για my_order(('Spade','King'), ('Clubs',7)) και False για για my_order(('Clubs','King'), ('Clubs',7)). Χρησιμοποιήστε την ταξινόμηση με εισαγωγή (insertion sort). Sort6-cards2.py
    	
  • Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα ένα λεξικό. Τα κλειδιά του λεξικού είναι τα ονόματα φοιτητών. Οι τιμές του λεξικού είναι ένα άλλο λεξικό που περιέχει ως κλειδιά τα μαθήματα που έχει περάσει ο φοιτητής και τιμές τους αντίστοιχους βαθμούς. Π.χ. d={"Mike":{"MEM107":6, "MEM108":9}, "Peter":{"MEM105":6, "MEM107":9} } Η συνάρτηση θα επιστρέφει δύο λίστες, στην πρώτη θα είναι τα ονόματα φοιτητών και στη δεύτερη ο μέσος όρος των βαθμών των μαθημάτων που έχει περάσει ο αντίστοιχος φοιτητής της πρώτης λίστας. Οι λίστες θα είναι ταξινομημένες αλβαφητικά με τη μέθοδο selection sort. Sort6-list-grades.py
    	
  • Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα ένα λεξικό, όπως αυτό που περιγράψαμε στην προηγούμενη άσκηση. Η συνάρτηση θα επιστρέφει δύο λίστες, στην πρώτη θα είναι τα ονόματα φοιτητών και στη δεύτερη ο μέσος όρος των βαθμών των μαθημάτων που έχει περάσει ο αντίστοιχος φοιτητής της πρώτης λίστας. Οι λίστες θα είναι ταξινομημένες ως προς τους βαθμούς χρησιμοποιώντας με τη μέθοδο insertion sort. Sort6-list-grades2.py