Το Στέκι των Πληροφορικών

Επαγγελματικό Λύκειο => Γενικά => Προγραμματισμός Υπολογιστών => Μήνυμα ξεκίνησε από: panawths στις 09 Ιουν 2017, 11:09:11 ΜΜ

Τίτλος: cocktail-shaker Sort
Αποστολή από: panawths στις 09 Ιουν 2017, 11:09:11 ΜΜ
Επειδή είναι καλοκαίρι και η cocktail-shaker sort αποτελέι μια "δροσερή" παραλαγή της κλασσικής ταξινόμησης φυσσαλίδας θα ήθελα να την παραθέσω. (ποτέ δεν ξέρεις, ίσως να ήταν ένα καλό θέμα για συμπλήρωση κενού)
Η ταξινόμηση χωρίζεται σε 2 φάσεις. Στην πρώτη γίνονται αντιμεταθέσεις από τα αριστερά προς τα δεξιά ώστε το μεγαλύτερο στοιχείο του πίνακα να μεταφερθεί στην τελευταία θέση του πίνακα. Στη δεύτερη φάση γίνονται αντιμεταθέσεις απο τα δεξια προς τα αριστερά ώστε το πιο μικρό στοιχείο του πίνακα να μεταφερθεί στην πρώτη θέση του πίνακα. κοκ...

Κώδικας (php) [Επιλογή]
def cocktail_sort(A):
    for k in range(len(A)-1, 0, -1):
        swapped = False
        for i in range(k, 0, -1):
            if A[i]<A[i-1]:
                A[i], A[i-1] = A[i-1], A[i]
                swapped = True

        for i in range(k):
            if A[i] > A[i+1]:
                A[i], A[i+1] = A[i+1], A[i]
                swapped = True
     
        if not swapped:
            return A



Τίτλος: Απ: cocktail-shaker Sort
Αποστολή από: evry στις 10 Ιουν 2017, 12:37:48 ΠΜ
Πράγματι θα αποτελούσε ένα καλό θέμα μέχρι που το πόσταρες εδώ οπότε κάηκε για φέτος :'(

Παράθεση από: panawths στις 09 Ιουν 2017, 11:09:11 ΜΜ
Επειδή είναι καλοκαίρι και η cocktail-shaker sort αποτελέι μια "δροσερή" παραλαγή της κλασσικής ταξινόμησης φυσσαλίδας θα ήθελα να την παραθέσω. (ποτέ δεν ξέρεις, ίσως να ήταν ένα καλό θέμα για συμπλήρωση κενού)