Αποστολέας Θέμα: cocktail-shaker Sort  (Αναγνώστηκε 537 φορές)

panawths

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

Κώδικας: PHP
  1. def cocktail_sort(A):
  2.     for k in range(len(A)-1, 0, -1):
  3.         swapped = False
  4.         for i in range(k, 0, -1):
  5.             if A[i]<A[i-1]:
  6.                 A[i], A[i-1] = A[i-1], A[i]
  7.                 swapped = True
  8.  
  9.         for i in range(k):
  10.             if A[i] > A[i+1]:
  11.                 A[i], A[i+1] = A[i+1], A[i]
  12.                 swapped = True
  13.      
  14.         if not swapped:
  15.             return A



evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3059
  • to Iterate is human to Recurse divine
Απ: cocktail-shaker Sort
« Απάντηση #1 στις: 10 Ιούν 2017, 12:37:48 πμ »
Πράγματι θα αποτελούσε ένα καλό θέμα μέχρι που το πόσταρες εδώ οπότε κάηκε για φέτος :'(

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