cocktail-shaker Sort

Ξεκίνησε από panawths, 09 Ιουν 2017, 11:09:11 ΜΜ

« προηγούμενο - επόμενο »

panawths

Επειδή είναι καλοκαίρι και η 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




evry

Πράγματι θα αποτελούσε ένα καλό θέμα μέχρι που το πόσταρες εδώ οπότε κάηκε για φέτος :'(

Παράθεση από: panawths στις 09 Ιουν 2017, 11:09:11 ΜΜ
Επειδή είναι καλοκαίρι και η cocktail-shaker sort αποτελέι μια "δροσερή" παραλαγή της κλασσικής ταξινόμησης φυσσαλίδας θα ήθελα να την παραθέσω. (ποτέ δεν ξέρεις, ίσως να ήταν ένα καλό θέμα για συμπλήρωση κενού)
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr