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

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

Τίτλος: cocktail-shaker Sort
Αποστολή από: panawths στις 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


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

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